FB JS SDK版本:'v2.3'
我的Facebook帐户已连接到我的Facebook应用程序。 如果我在我的网站上调用FB.getLoginStatus,状态为“已连接”,则authResponse已正确填充。
在另一个浏览器或标签页上,我打开我的Facebook应用程序设置并删除该应用程序。 回到我的网站,我再次调用FB.getLoginStatus。状态仍然“已连接”。 它在很长一段时间内保持不变。
如果我刷新页面并再次运行FB.init,则FB.getLoginStatus会给出正确的“not_authorized”状态响应。
如何在不刷新页面的情况下使用FB.getLoginStatus正确获取当前登录状态?
答案 0 :(得分:0)
(为什么)你没有看过方法的文件......?
https://developers.facebook.com/docs/reference/javascript/FB.getLoginStatus/#servers:
“为了提高应用程序的性能,并非每次检查用户状态的调用都会导致对Facebook服务器的请求。在可能的情况下,缓存响应。在当前浏览器会话中第一次调用
FB.getLoginStatus
,或者使用status: true
初始化JS SDK时,SDK将缓存响应对象。对FB.getLoginStatus
的后续调用将返回此缓存响应中的数据。这可能导致用户自上次完整会话查询以来登录(或退出)Facebook的问题,或者用户已在其帐户设置中删除了您的应用程序。
要解决此问题,请使用第二个参数设置为
FB.getLoginStatus
来调用true
以强制向Facebook进行往返 - 有效刷新响应对象的缓存。“