我正在尝试在我的网站上实施Facebook登录和退出。 我正在使用Facebook PHP SDK。
我使用的代码如下:
登录
$facebook = new Facebook(array('appId' => APP_ID,
'secret' => APP_SECRET
));
$param = array();
$param["scope"] = array("email","offline_access","publish_stream");
$loginUrl = $facebook->getLoginUrl($param);
注销
$logoutUrl = $facebook->getLogoutUrl();
问题是注销网址无法注销Facebook用户。
当我从范围参数中删除“offline_access”时,注销Url正常工作。
我还在PHP SDK的example.php文件中实现了上述范围,结果是一样的。
任何人都可以提供任何帮助。
答案 0 :(得分:1)
我发现了我的问题。从Facebook登录后,我调用了函数$facebook->destroySession();
,然后调用函数$facebook->getLogoutUrl();
。
由于destroySession()
功能,Facebook返回的access_token
丢失,我从getLogoutUrl()
功能生成的注销网址无法从Facebook注销用户。
删除destroySession()
函数后,我的代码工作正常。
答案 1 :(得分:0)
我认为问题可能是您在将用户从FB中注销后没有清除会话cookie。
1) download the latest php sdk.
2) Make sure you specify the 'domain' parameter when you create the $facebook object.
3) Before you redirect the user to FB logout, clear their session with
$facebook->setSession(null); - alternatively, you can use FB.logout() in the javascript SDK.
更新: 当您指定appId和key时,也请将“domain”作为您的域名。
setSession的示例: example1