5 php mysql session facebook oauth-2.0
我有这个功能的Facebook
public function link2(){
global $config;
$facebook = new Facebook(array(
'appId' => $config['facebook_appId'],
'secret' => $config['facebook_secret'],
'cookie' => true
));
return $facebook;
}
Run Code Online (Sandbox Code Playgroud)
然后我这样做以获得令牌
if(isset($_SESSION['fb_'.$config['facebook_appId'].'_access_token'])){
$accesstoken = $_SESSION['fb_'.$config['facebook_appId'].'_access_token'];
}else{
$accesstoken = $facebook->getAccessToken();
}
Run Code Online (Sandbox Code Playgroud)
并将其存储在DB中,但在我注销并再次登录并再次调用ALBUMS后,我收到错误
A user access token is required to request this resource
Run Code Online (Sandbox Code Playgroud)
我正在session_destroy
我的logout.php文件中,我想知道会话是如何与此相关的,如果我将我的logout.php文件更改为刚刚取消设置userId变量,那么调用对我有效.我错过了什么吗?
为什么要将用户访问令牌存储在会话中?会话数据的重点是临时存储。
您可以在登录期间将令牌保存到数据库中,并在每次调用时从数据库中读取它$facebook = new Facebook( ...
如果你只把它存放在一个地方,那就容易多了。
第二点是,你不能期望用户使用注销按钮。如果用户只是关闭浏览器并杀死他或她的cookie,会话不会被破坏,但没有人可以再访问它。所以注销唯一应该做的就是销毁会话。