当用户第一次打我的网站的登录画面,我有Facebook连接确定用户是否登录到Facebook和重新载入页面,如果真:Facebook连接注销后,Facebook的PHP类仍然认为用户登录
<script type="text/javascript" src="http://static.ak.connect.facebook.com/js/api_lib/v0.4/FeatureLoader.js.php"></script>
<script type="text/javascript">
FB.init('MY_API_KEY', '/xd_receiver.htm', { 'reloadIfSessionStateChanged': true });
</script>
当重新加载页面,我的后端PHP代码检查用户是否登录到Facebook上,然后自动记录它们在我的网站:
$Facebook = new Facebook(MY_API_KEY, MY_APP_SECRET);
if ($Facebook->get_loggedin_user()) {
// Log the user in.
}
这部分工作正常。问题在于注销功能。我注销链接目前看起来是这样的:
<a href="#" onclick="FB.Connect.logoutAndRedirect('http://my.url/logout/');">Log Out</a>
是单击时,用户被成功注销了Facebook上,但后端的Facebook PHP对象仍然认为在用户登录($Facebook->get_loggedin_user()
仍然返回他们的用户ID),所以我的登录代码会自动再次登录。
所以我发现的问题是,即使Facebook连接记录用户出,后端Facebook PHP对象仍然认为用户登录。有谁知道如何克服这一点?我可以不用我的PHP代码自动登录用户吗?
感谢您的帮助!
尝试有问题的网页上倾倒你的Facebook相关的cookies。我不认为应该有什么,当你到达那里。 – 2009-10-23 23:52:43
我描述了这个相同的问题http://stackoverflow.com/questions/1546277/trouble-logging-out-of-a-facebook-connect-site-and-destroying-sessions – Xeoncross 2009-11-10 23:18:13