如何全局存储扩展访问令牌

How to store extended access token globally?

本文关键字:访问令牌 扩展 存储 何全局      更新时间:2023-09-26

我想全局存储extentAT变量,以便进一步调用图API。请帮我存储这个变量。这是我的代码示例

FB.login(function(response) {
           if (response.authResponse) 
           {
                var uid = response.authResponse.userID;
                var accessToken = response.authResponse.accessToken;
                alert(accessToken);
                appid="xxxxxxxxxx";
                appsecret="xxxxxxxxxxxxxxxxxxxxxxx";
                var exchangeUrl = "https://graph.facebook.com/oauth/access_token?grant_type=fb_exchange_token&fb_exchange_token="+accessToken+"&client_id="+appid+"&client_secret="+appsecret;
                        //got the accesstoken with 1-2 hours expire time
                $.ajax({  
                  type: "GET",
                  url: exchangeUrl,  
                  success: function(data)
                  { 
                     extended = data.split('=');
                     extendedAT = extended['1'].replace('&expires','');
                         alert(extendedAT);
                         // return extendedAT;
                         // $('#AccessToken').val(extendedAT);
                         // $user_session = new Zend_Session_Namespace('fbuser');
                // $user_session->access_token = $paramsfb['access_token'];
                  }
                  });
} else 
            {
             console.log('User cancelled login or did not fully authorize.');
            }
         },{scope: 'email,user_photos,user_videos,offline_access'});
    } 

您可以使用会话来存储值,并根据需要获取值。这是jQuery会话的参考链接。

https://github.com/AlexChittock/JQuery-Session-Plugin

只需在会话中存储值,如:

$.session.set("extendedAT", extendedAT);

并再次使用将其送到您想要的位置

$.session.get('extendedAT');

我在用它。希望能帮到你。

此外,如果有任何新的想法张贴在这里,我会很高兴。

只需将extendedAT变量的声明放在函数之外即可:

var extendedAT = "";
FB.login(function(response) {
    ...
}