Facebook登录缓存结果问题

Facebook登录缓存结果问题,facebook,facebook-javascript-sdk,facebook-login,Facebook,Facebook Javascript Sdk,Facebook Login,我有一个用例,我需要获取访问令牌,然后请求长期访问令牌。下面的代码实现了这个用例,但无法处理缓存的结果 FB.login(function (response) { if (response.status == 'connected') //sends token to server and server request long lived token. }, { scope: 'email,user_birthday' }); 如果用户从其他选项卡注销,服务器将无法

我有一个用例,我需要获取访问令牌,然后请求长期访问令牌。下面的代码实现了这个用例,但无法处理缓存的结果

FB.login(function (response) {
    if (response.status == 'connected')
        //sends token to server and server request long lived token.
}, { scope: 'email,user_birthday' });
如果用户从其他选项卡注销,服务器将无法请求长寿命令牌。因为用户已注销,短访问令牌已失效,但仍会带来失效的缓存令牌。我在上未找到任何用于指定不缓存结果的参数

但具有不缓存结果的参数。所以在本例中,我将第二个参数作为true传递给,以避免缓存结果。所以,在该方法中,若用户未登录,我将调用提示用户登录对话框。在这种情况下,除了一种情况外,true parameter remove cache问题和下面的代码工作得非常好。内部被浏览器阻止

如何防止浏览器在没有缓存结果的情况下不阻止下面示例中的登录对话框或直接调用?如果两者都不可能,那么还有其他替代方案吗

FB.getLoginStatus(function (response) {
    if (response.status == 'connected') {
        //sends token to server and server request long lived token.
    } else {
        FB.login(function (response) {
            if (response.status == 'connected'){
              //sends token to server and server request long lived token.       
            }         
        }, { scope: 'email,user_birthday' });
    }
}, true);

只要不要在FB.getLoginStatus回调中调用FB.login,而是在单击按钮或其他东西时调用它…浏览器就不会阻止弹出窗口。我分享了直接调用FB.login时发生的错误。它缓存结果。您仍然可以在…之前执行FB.getLoginStatus(如果有必要,使用
状态:true初始化JSSDK应该完成相同的任务).FB.getLoginStatus带有第二个true参数和FB.login将导致向facebook服务器发出2个请求,这些异步请求将不会被排序,这可能会导致意外行为。然后,仅在FB.getLoginStatus返回后显示调用FB.login的按钮…顺便说一句,您是否至少使用init参数进行了尝试…?