我已将facebook登录与我的应用程序集成,我想在退出我的应用程序时从facebook注销用户。所以我做了以下事情:
<a href="<c:url value='/security_logout'/>" onclick="FB.logout();">Logout</a>
这适用于Firefox和Chrome,但不适用于IE8。在IE8中,用户已退出应用程序但未登出Facebook。 有其他人经历过这个吗?
答案 0 :(得分:0)
请尝试这个
<script src="http://connect.facebook.net/en_US/all.js"></script>
<div id="fb-root"></div>
<script language="javascript" type="text/javascript">
FB.init({
appId: '205734987138498',
status: true, // check login status
cookie: true, // enable cookies to allow the server to access the session
xfbml: true, // parse XFBML
oauth: true // enable OAuth 2.0
});
function handleSessionResponse(response) {
// FB.XFBML.parse();
}
FB.getLoginStatus(handleSessionResponse);
//////you can optionally put the following in a seprate js file/////////
var Facebook = {}
Facebook.signout = function (url) {
FB.logout();
setTimeout('top.location.href = "' + url + '"', 2000);
}
</script>
<div onclick="Facebook.signout('http://www.uamplify.com');">Call your logout function now, click here</div>
答案 1 :(得分:0)
我发现了完全相同的东西以及Android浏览器。 Shahid的修复对我有用,然后我意识到另一种方法是将重定向放在回调函数中,如下所示:
function mysignout(url)
{
FB.logout(function()
{
top.location.href = 'url'
});
}
如果你像我一样,你可能认为FB.logout只是在破坏一个cookie或者什么东西,但它似乎做了一些ajax调用(我想在服务器上撤销身份验证)并且具有不同的执行时间,特别是在移动设备上使用无线网络的设备。
2000 ms可能不一定足够时间来完成该功能,或者它可能不仅仅是必要的。一旦FB.logout在每种情况下完成,都会执行回调函数。