我在我的网站上将 Facebook PHP SDK 与 JS SDK 结合使用。基本上,JS API 使用户登录,然后 PHP 部分获取所有用户信息以显示在页面上。
日志记录
部分工作正常:用户单击按钮,弹出 FB 对话框。 logout
函数也适用于 onClick 事件,只是它实际上不起作用。它确实成功注销了用户,但是当它重定向回主页时,会抛出异常:
"Error validating access token: The session is invalid because the user logged out".
刷新页面后,错误消失。这是否是由于注销功能未正确删除 session 所致?
这是我用来注销用户的函数:
function FBLogout(){
event.preventDefault();
FB.logout(function(response){
window.location.href = 'http://www.mydomain.com/';
});
}
关于如何解决这个问题有什么建议吗?
最佳答案
Facebook 必须抛出此错误作为对 API 调用的响应。
成功注销用户后,向 facebook 发送的调用失败并返回此错误。
编辑:
从 JS-SDK 注销不会使 PHP SDK 生成的访问 token 失效。
所以这样做-
- 在
FB.logout
的回调中,调用$facebook->destroySession()
- 您可以通过使用此调用对页面进行 ajax 调用来完成此操作,然后在回调时,用户将从 JS 和 PHP 中注销
关于javascript - Facebook SDK 注销功能问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23047154/