3

我在谷歌云中有一个网站。我使用身份识别代理 (IAP) 来保护它。

当请求进入 IAP 时,检查我是否已获得授权,然后回复

  • 如果我被授权:我请求的资源的响应
  • 如果不是:一个 302 或 401 响应,取决于它是否认为它是一个 ajax 调用

现在我想在此之上使用Google 登录网站。

这似乎是多余的,因为我在看到按钮时已经登录,但我想用它作为注销或更改用户帐户的一种方式。

现在我试图做的是:

var auth2 = gapi.auth2.init({
  client_id: 'mykey.apps.googleusercontent.com',
})

auth2.isSignedIn.get()
// false, I was hoping that I could somehow piggyback on my existing session

auth2.signIn()
// shows a pop up, allowing me to select an account

auth2.isSignedIn.get()
// true

currentUser.getBasicProfile()
// works

这似乎有效,只是即使我已经登录,它也会向我显示一个登录框,这很可疑。

添加到这个当我做

auth2.disconnect()

auth2.isSignedIn.get()
// false

然后进行完全刷新,然后我仍然可以从 IAP 获得我的资源,证明我仍然在那里登录。

问题:

  • 我怎样才能让它工作?
  • 这甚至是正确的方法吗?
4

1 回答 1

1

我对网站登录不太了解,但还有另一种可能适合您的选项。您是否考虑过添加指向 /_gcp_iap/clear_login_cookie 的链接以提供“更改用户帐户”选项?(记录在这里:https ://cloud.google.com/iap/docs/special-urls-howto )

如果用户使用多个 Google 帐户登录,则会将它们退回到帐户选择器。今天,如果他们只使用一个帐户登录,它只会将他们直接发送回应用程序 - 但下周将推出一项增强功能,即使对于单帐户情况,也会显示帐户选择器,为用户提供有机会使用其他帐户登录。

希望有帮助!--Matthew,IAP 工程主管

于 2017-11-11T01:01:27.183 回答