FB.getLoginStatus 返回状态 'unknown' 即使用户已登录
FB.getLoginStatus is returning status 'unknown' even when the user is logged in
我启用了第三方 cookie,所以这不是问题所在。我正在使用 google Chrome、facebook javascript SDK version 2.5
,第一次登录时一切正常,但是当我注销并尝试重新登录时,它正在返回 status: 'unknown'
注销后使用以下代码解决问题:
document.cookie.split(";").forEach(function(c) {
document.cookie = c.replace(/^ +/, "").replace(/=.*/, "=;expires=" + new Date().toUTCString() + ";domain=.example.com;path=/");
});
将 example.com 替换为您的域名。
注销后我遇到了类似的问题。 FB.logout()
似乎创建了一个 fblo_<your-app-id>
cookie,其有效期为 1 年并且永远不会消失,即使您再次登录后也不会消失。在某些情况下,这个特定的 cookie 似乎还会阻碍 FB.getLoginStatus()
返回正确的状态。手动删除 cookie 可以解决问题,但我不能说为什么它没有被成功 FB.login()
调用
自动删除
我在 Chrome 也遇到过这个问题。但是,在 Firefox 中,它按预期工作,状态 returned 为 connected
当用户之前登录时。
此问题的根本原因是,在 FB.logout()
上,Chrome 没有删除 cookie fblo_<your-app-id>
,这会以某种方式影响 FB.getLoginStatus()
到 [=26= 的功能] 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;';
}
我启用了第三方 cookie,所以这不是问题所在。我正在使用 google Chrome、facebook javascript SDK version 2.5
,第一次登录时一切正常,但是当我注销并尝试重新登录时,它正在返回 status: 'unknown'
注销后使用以下代码解决问题:
document.cookie.split(";").forEach(function(c) {
document.cookie = c.replace(/^ +/, "").replace(/=.*/, "=;expires=" + new Date().toUTCString() + ";domain=.example.com;path=/");
});
将 example.com 替换为您的域名。
注销后我遇到了类似的问题。 FB.logout()
似乎创建了一个 fblo_<your-app-id>
cookie,其有效期为 1 年并且永远不会消失,即使您再次登录后也不会消失。在某些情况下,这个特定的 cookie 似乎还会阻碍 FB.getLoginStatus()
返回正确的状态。手动删除 cookie 可以解决问题,但我不能说为什么它没有被成功 FB.login()
调用
我在 Chrome 也遇到过这个问题。但是,在 Firefox 中,它按预期工作,状态 returned 为 connected
当用户之前登录时。
此问题的根本原因是,在 FB.logout()
上,Chrome 没有删除 cookie fblo_<your-app-id>
,这会以某种方式影响 FB.getLoginStatus()
到 [=26= 的功能] 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;';
}