dotnetopenauth - 如何在Google端反弹登录

时间:2010-08-12 21:02:51

标签: c# openid dotnetopenauth

我有一个网站,允许用户使用他们的谷歌帐户登录http://urlme.cc

问题:用户Bob以bob@gmail.com身份登录,然后重新登录,然后确定他要登录为bob-at-home@gmail.com,这是他的替代gmail地址之一,他不能去做。如果他在google的登录页面上选中了“记住我”复选框,它就会记住他。这可能吗?我知道用户可以手动撤销“https://www.google.com/accounts/IssuedAuthSubTokens”上的关联,但是,我必须有一个更简单的方法,我作为开发人员可以为他撤销它。

如果我需要更好地说出来,请告诉我!

1 个答案:

答案 0 :(得分:1)

“记住我”复选框仅在用户登录谷歌时有意义。

当他登录其他帐户时,Google将不再对以前的帐户进行身份验证,而是使用他登录的帐户。

分步骤:

  1. 用户以bob@gmail.com身份登录Google
  2. 用户点击网站上的“使用Google登录”
  3. Google要求用户授权进行身份验证,并询问是否记住该权限(以及用户)
  4. 用户已登录,但决定使用此帐户进行身份验证是个坏主意
  5. 用户在网站和Google
  6. 注销
  7. 用户以Google身份登录bob-at-home@gmail.com
  8. 用户点击网站上的“使用Google登录”
  9. 由于现在另一位用户已登录,并且他尚未允许进行身份验证,因此Google会在步骤3中请求权限。
  10. 用户已允许使用身份验证,因此现在Google会返回不同的标识符,一个用于bob-at-home@gmail.com,并且Google和该网站都不知道这两个帐户以任何方式连接。该网站会看到两个不同的用户,Google也是如此。
  11. 此外,将用户限制为一个提供商似乎不是一个好主意。 OpenID就是权力下放 - 你至少应该允许手动输入标识符。

    再次:“记住我”的意思是:“不要问我下次发送该数据的许可。”而不是“记住使用这台机器的人就是我”(那就是“记住我” “当您登录Google时。”

    不,没有办法自动撤销用户的权限,或者知道他有一个被记住,我没有看到你可能想要的任何理由。