在网站上,我使用OpenID(基于StackOverflow)实现了登录。
但我似乎无法退出 在我的主机上,我可以注销,但当用户尝试再次登录时(特别是使用谷歌),身份验证会通过而无需用户输入名称和密码。
如何向OpenID提供商表明用户不再登录该网站?
答案 0 :(得分:14)
OpenID会对您网站的用户进行身份验证,然后在您的网站上启动会话。您从用户与其OpenID提供商的会话中销毁或使您的网站会话单独无效。
用户访问joewidgets.com>用户使用OpenID登录(使用新的或现有的提供者会话)> ...用户点击退出> joewidgets.com破坏/使会话无效。
如果用户有OpenID提供商让他们登录,并且您的系统会自动检查,那么它将创建一个新的本地会话。 (联合国)幸运的是,您不会/不能担心用户在他们的提供商处做了什么或不做什么,这是OpenID的赞成。
Social Lipstick有一个论点要求“单点登出”,但 OpenID目前不提供此功能。
答案 1 :(得分:8)
这称为Single Logout或Single Sign-Out,OpenID不支持。在我看来,没有注销的SSO是一个很大的安全漏洞。如果其他人只需点击几下就可以登出单个网站并不意味着什么。
目前,我们必须记住提供商。如果是我们认识的人,我们会触发他们的注销过程。对于Google,网址为
https://www.google.com/accounts/Logout
注销流程很丑陋,但它可以完成工作。
答案 2 :(得分:4)
这通常由OpenID提供商处理 - 例如,如果用户仍然登录其Google帐户并选中“记住”特定网站的OpenID授权,则提供商将透明地将其登录并重定向他们回来时没有显示登录提示。
答案 3 :(得分:0)
“这是一个功能而非错误”
ID提供商可以选择通过cookie保持用户对提供商的授权,并且还可以选择不再提示用户共享先前共享的相同信息(带有提示)。因此,当站点A上的用户被要求通过站点B授权并被重定向时,站点B首先要求用户对他或她自己进行身份验证。然后,站点B询问是否应该与站点A共享任何信息(有时是哪些信息)。此时,它通常会询问您是否希望将来自动共享相同的信息。有些提供商会假设是,有些不会,有些会不会问。然后,站点B重定向到站点A并共享信息,您现在已登录。
如果站点A进行第二次重定向到站点B以请求登录,则站点B可能会 1)已经有一个cookie来验证Site B的当前用户。 2)已经记录了可以与站点B共享的信息。 3)通过重定向自动共享此信息,而不会暂停以提示用户。
这是一个以便利为中心的功能。