登录后重新授权facebook用户


Re-Authenitcating a facebook user once logged in

假设一个Facebook用户在某个时候登录了你的Facebook应用程序(使用fb.login),并且该用户已保存在数据库中。在accesstoken过期后(fb.api('/me')失败),如何让用户再次使用您的应用程序进行身份验证。

已签名的请求包含用户id,但如何从那里登录用户?

我使用的是PHP-sdk,基本上一开始就用FB.api('/me')进行检查,以直接指向欢迎页面或用户页面。但FB在某些情况下返回false,通常在一两天后。所以我开始认为这是因为访问令牌已经过期。我不知道如何重新验证,我只知道用户id仍然存在于签名的请求中。

在javascript中放入以下代码。。。如果用户未登录,它将打开登录弹出窗口

FB.getLoginStatus(函数(响应){

if (response.authResponse) {  
     fbUserId = response.authResponse.userID;
     token = response.authResponse.accessToken; 
 } else {  
     FB.login(function(response) {
        if (response.authResponse) {
            fbUserId = response.authResponse.userID;
            token = response.authResponse.accessToken;  
        }
        else {
             console.log('User cancelled login or did not fully authorize.');  
        }
    });
    }

},true);

使用Javascript SDK提示用户通过Facebook:登录

https://developers.facebook.com/docs/reference/javascript/FB.login/

或者,您可以尝试在服务器端身份验证期间存储Facebook返回的代码,并在用户返回时使用它来请求新的令牌。