我启用了第三方Cookie,这不是问题所在。我正在使用google Chrome,facebook javascript SDk version 2.5
,当我登录时,一切正常,但当我退出并尝试重新登录时,它正在返回status: 'unknown'
答案 0 :(得分:7)
注销后使用以下代码解决问题:
document.cookie.split(";").forEach(function(c) {
document.cookie = c.replace(/^ +/, "").replace(/=.*/, "=;expires=" + new Date().toUTCString() + ";domain=.example.com;path=/");
});
将example.com替换为您的域名。
答案 1 :(得分:2)
我在Chrome中也遇到过这个问题。但是,在Firefox中,当用户之前登录时,它按预期工作,状态返回为connected
。
此问题的根本原因是,在FB.logout()
上,Chrome未删除以某种方式影响fblo_<your-app-id>
函数以返回FB.getLoginStatus()
unknown
修复:在调用FB.logout()
时,您可以通过编程方式删除Cookie fblo_<your-app-id>
FB.logout(function(response) {
deleteCookie("fblo_" + fbAppId); // fblo_yourFBAppId. example: fblo_444499089231295
});
function deleteCookie(name) {
document.cookie = name +'=; Path=/; Expires=Thu, 01 Jan 1970 00:00:01 GMT;';
}
答案 2 :(得分:0)
注销后我遇到了类似的问题。似乎FB.logout()
创建了一个fblo_<your-app-id>
Cookie,其有效期为1年,它永远不会消失,即使您再次登录也不会消失。看来这个特殊的cookie似乎阻碍FB.getLoginStatus()
在某些情况下返回正确的状态。手动删除cookie可以解决问题,但我不能说为什么它不会被成功的FB.login()
调用自动删除