【问题标题】:Google Identity API signOut() ExplainedGoogle Identity API signOut() 解释
【发布时间】:2018-03-22 07:15:30
【问题描述】:

我一直在查看 Google 登录指南,它说要使用 signOut 功能 (https://developers.google.com/identity/sign-in/web/sign-in) 来实现其自我描述的目的。我知道它不会让您退出 Google(这会令人沮丧),但我不明白它的实际作用。它是否将某些“登录”变量从真切换为假?如果是这样,我该如何检查?参考资料没有提供太多细节https://developers.google.com/identity/sign-in/web/reference#googleauthsignout

【问题讨论】:

  • 它似乎断开了当前应用程序与 Google 帐户的连接。我不知道 HOW 它是如何做到的,但我的猜测是它会使存储在 cookie 中的令牌无效或删除。 (或本地存储)
  • Cookie 没有改变,并且没有使用本地存储。如果我刷新页面,一切看起来仍然是登录状态。

标签: javascript google-signin google-identity


【解决方案1】:

Google Sign-In for Websites 的工作方式是,返回您网站的用户将自动登录,无需提示或采取任何措施。

使用signOut() 时不会发生这种情况,用户必须重新登录。注销不会撤销任何权限,但只会从当前会话中删除任何currentUser 信息。 当用户决定再次登录时,他们将立即登录,无需新的权限提示。

要完全断开用户连接并撤销所有权限/令牌,还有额外的disconnect() method

需要注意的一点是,signOut 功能仅在您将网站部署到某些主机时才有效。因此,如果您在 localhost 上进行测试,您将看不到预期的行为。不知道为什么会这样,但我过去遇到过这个问题,但是 signOut 在网站部署后就按预期工作了。

要让您的网站更新为当前的登录状态,您应该监听isSignedIn 和/或currentUser 的变化,这也会在用户退出时触发:https://developers.google.com/identity/sign-in/web/listeners

【讨论】:

  • 好吧,整个“不适用于 localhost”使得这很难测试。添加了事件侦听器代码,正如您所说, currentUser 侦听器有效,但 isSignedIn 无效。对 Google 在这方面缺乏信息/一致性感到有些失望。
  • 可以确认你是正确的。更改了我的主机文件以给本地主机一个 url,它可以工作。令人沮丧的是,参考网站上没有明显显示信息。谢谢。
猜你喜欢
  • 1970-01-01
  • 2015-10-29
  • 1970-01-01
  • 1970-01-01
  • 2021-10-25
  • 2020-11-10
  • 1970-01-01
  • 2013-07-24
相关资源
最近更新 更多