javascript - Google 登录 API 不对称 - 泄露用户帐户

标签 javascript google-signin

我正在开发依赖于 Google 的 sign in javascript library 的 SPA对用户进行身份验证。一位用户提交了一份错误报告,称当她在共享计算机上演示我们的产品时,该应用泄露了她的 Google 电子邮件帐户。

我注意到其他网站也有同样的症状,所以我的示例案例将使用 medium.com。

重现:

  1. 访问本地图书馆的公共(public)计算机。
  2. 打开 Chrome
  3. 浏览到 mail.google.com,发现没有用户登录。
  4. 转到 medium.com 并使用 Google 帐户登录。
  5. 退出 medium.com
  6. 这是登录和注销对称结束的地方。您应该此时可以离开。
  7. 再次访问 mail.google.com。看到您已自动登录。

似乎通过第 3 方网站进行身份验证也会登录到 Google 的生态系统,然后在退出第 3 方网站后该帐户仍保持事件状态。

是否有一种通过 Google 帐户对用户进行身份验证的方法不包含此副作用?

最佳答案

用户正在登录 Google 和网站

当用户使用 OAuth(通过 Google)时,它会将他们重定向到 Google 的 OAuth 页面,其中包含一些数据......

Hey Google, this person called Foo Bar is claiming to be foobar@gmail.com. Is that right?

然后,如果您已登录,Google 将回复"is"或使用...

Hold on a sec mate, they're not logged in -- I'll give them a login screen to check for you

用户随后将登录到 Google 而不是您的网站。如果登录成功,Google 会将用户重定向回您的网站,并提供相关信息(例如姓名、出生日期、电子邮件等)。

All done now mate! Foo Bar IS foobar@gmail.com! Here are his details: [insert user info here]

用户现在已登录到 Google 您的应用。

当用户退出您的应用时,他们会保持登录状态并登录 Google,这会产生您所说的结果。有一些方法可以自动退出 Google(在下面的链接中有详细说明),但我绝对不会推荐它们,因为用户可能会在另一个选项卡中打开 Gmail,而您很可能会破坏他们的工作流程。你甚至可能会让他们担心。 (如果我无缘无故退出 Google,我会的!)


Source

关于javascript - Google 登录 API 不对称 - 泄露用户帐户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52019702/

相关文章:

swift - 谷歌登录快速

xcode - Google在iOS中登录SDK给出链接器错误

javascript - 在 node-webkit 应用程序上通过 Google 登录时,不会调用 gapi.auth.authorize 回调

android - 用于在 GAE 上运行的 Go 中验证 Google 登录 token 的包

download - 使用 Google Sign-in 登录网络服务器

javascript - grunt 如何替换 HTML 元素?

javascript - knockout 装订的 strip 元素

c# - 从代码隐藏添加文本到网页

javascript - ng-click父div的子复选框

javascript - 如何修改移动设备和选项卡的引导轮播