Mel*_*ner 2 javascript php cookies facebook-graph-api
我有一个logout.php页面.通过单击附加了此javascript的注销来调用此方法:
FB.getLoginStatus(function(response) {
if (response.status === 'connected') {
button.onclick = function() {
FB.logout(function(response) {
window.location = 'logout.php';
});
}
}
});
Run Code Online (Sandbox Code Playgroud)
在注销页面上我运行了这个PHP代码:
if (isset($_COOKIE['fbsr_' . $app_id])) {
setcookie('fbsr_' . $app_id, $_COOKIE['fbsr_' . $app_id], time() - 3600, "/");
setcookie('PHPSESSID', $_COOKIE['PHPSESSID'], time() - 3600, "/");
unset($_COOKIE['fbsr_' . $app_id]);
unset($_COOKIE['PHPSESSID']);
}
Run Code Online (Sandbox Code Playgroud)
问题是javascript会将某人记录下来.php脚本不会删除fbsr和phpsessid cookie.我该如何解决这个问题?
小智 5
对于某些应用程序,FB将fbsr cookie设置在".your-domain.tld"域下(注意前一点).除非您指定正确的域,否则不会删除cookie.试试这个,你就可以注销了:
setcookie('fbsr_' . $appID, '', time()-3600, '/', '.'.$_SERVER['SERVER_NAME']);
这是一个FB错误,使得cookie不会在注销时删除,所以你的$ fb-> getUser()API调用返回以前的用户ID而不是NULL或0.这是FB世界;)问候!