Shr*_*ath 33 openid account logout
我使用openid登录用户.(仅限谷歌帐户).现在我的页面中有一个退出链接,点击后,我希望用户退出谷歌帐户,并将页面重定向到我的主页.这可以吗?
编辑 -
更改已接受的答案,因为现在Google允许将[继续]重定向到您想要的任何域.
ira*_*ira 63
我已经解决了这个问题,当用户点击注销链接时调用此函数:
var logout = function(){
document.location.href = "https://www.google.com/accounts/Logout?continue=https://appengine.google.com/_ah/logout?continue=http://www.example.com";
}
Run Code Online (Sandbox Code Playgroud)
当用户单击链接时,浏览器会将用户重定向到注销页面,并且只有在注销完成后,用户才会重定向到站点" http://www.example.com ".
我希望这可以提供帮助.
Jos*_*aum 19
挑战
请求https://www.google.com/accounts/Logout会将用户注销.Google有时会向该地址添加一个continueUrl参数,但只有当目标是某个Google网站时,才能成功重定向用户,而不是您自己的.这使得该方法无法使用.
此外,OpenID规范此时不包括全局注销.
还有另一种方式:
建议
在您的网页上加入IFrame,并在注销链接上使用onClick JavaScript事件处理程序将https://www.google.com/accounts/Logout加载到IFrame中.之后(您可能想要检查IFrame是否成功加载),将用户重定向到您自己站点的注销过程.注销后,让该页面重定向到您的主页.
链接可能看起来像这样:
<a href="https://www.google.com/accounts/Logout"
onclick="myIFrame.location='https://www.google.com/accounts/Logout';StartPollingForCompletion();return false;">
log out</a>
<iframe id="myIFrame"></iframe>
Run Code Online (Sandbox Code Playgroud)
您需要实现该StartPollingForCompletion()功能以定期检查注销页面是否已加载.用于setTimeout()计时轮询,并检查IFrame上的一些属性(我不确定哪些属性可行,因为你在这里跨站点工作).
另见这些问题: