题
我最近在我的网站上添加了 OpenID 登录。但我不知道如何添加注销功能。
例如,单击“登录”按钮后,我可以显示所选 OpenID 提供商的登录表单,例如 Google 帐户。但是,我不知道如何实现“注销”按钮来注销 Google 帐户。
请指教。
解决方案
OpenID依赖方无法登录用户从OP的,你只能实现本地注销。就像RP不能登录用户登录到OP。
其他提示
个别的OpenID提供商为注销该用户可以被重定向不同的网址。
谷歌: https://www.google.com/accounts/Logout
雅虎: https://login.yahoo.com/config/login?logout= 1
有具有允许的OP提供这些网址作为标准的一部分的被讨论;看到的OpenID的邮件列表上讨论。
我觉得你混合范例(讨厌这个词,但想不出一个更好的刚才使用)。您的登录链接会将用户带到自己的OpenID提供商进行身份验证,但它不是在他们的谷歌帐户,这是最重要的一点,用户日志记录,它在你的网站日志记录,通过OpenID提供凭据。用户很可能已经在自己的OpenID提供商登录;你不(不能)知道并没有在意。
同样,在您的网站注销链接只能注销用户您的网站,它们返回到相同的状态,因为他们点击登录按钮之前。用户可能已注销其OpenID提供商已经的;你不知道,也不关心。这个网站是一个很好的例子。)
只要破坏会话。
您只能实现对OpenID的本地注销。正如查尔斯·达菲说,你总是可以使用特定的URL但提供用户使用一个供应商,你知道该注销的URL。这可以是fustrating如果用户发现他所有的谷歌帐户登录时,他们注销您的网站。
这是看问题的另一种方法是,你是否要确保登录者到您的网站一直当他是一个OpenID提供商已经登录需要而不是仅仅记录在他的密码键。
此(IMHO),如果他们正在使用它从公共终端提供更好的安全性。这将确保是谁在一直登录的用户需要重新验证自己的密码。
要做到这一点它其实很简单,只需使用PAPE extention openid.ns.pape = “http://specs.openid.net/extensions/pape/1.0”。结果 openid.pape.max_auth_age = 0
如,当你登录到OpenID提供商URL的一部分。
更多信息这里 http://code.google.com/apis/accounts /docs/OpenID.html
下面是一个通过招,我可以从谷歌注销:
<iframe id="myIFrame" src="" style='display:none;' >
function logOutGoogle(){
document.getElementById('myIFrame').src='https://www.google.com/accounts/Logout';
timeOut();
}
我在做我的项目,并卡在注销问题 我不知道该怎么做你喜欢 我已经通过cookie的重置所有已解答 因为我不知道设置的日志中地位的饼干 我需要知道这一点。
您必须从OpenID提供商验证成功后,创建了一些会话变量,你只需要摧毁这些会话变量。你不能摧毁一个由OpenID提供商创建的会话。
这是退出 Google 和 RP 的值得信赖的解决方案。
只需调用此 URI
它将注销谷歌并重定向回您的应用程序。谢谢!
很快我将发布 Windows Live 和 facebook.com STS 的注销解决方案。