如果没有将用户退出Facebook,则无法注销我的Facebook OAuth会话

时间:2012-01-11 23:30:20

标签: facebook oauth

根据SDK,我使用带有重定向的logout.php:

https://www.facebook.com/logout.php?confirm=1&next={SOME URL}&access_token={ACCESSTOKEN}

它正在让我退出,但它也将用户从Facebook中记录下来。如果没有退出Facebook,是不是有办法退出我的OAuth会话?

2 个答案:

答案 0 :(得分:5)

是的,我自己遇到了同样的问题。不要做logout.php或JS SDK的FB.logout()。而是使用HTTP删除命令将Graph API调用到me/permissions。这将终止访问令牌,从用户的应用程序列表中删除应用程序并维护浏览器的Facebook cookie。您可以将其称为服务器端或客户端。这是客户端Javascript SDK方式:

FB.api("me/permissions","delete", function(response){/*do something if you want*/})

答案 1 :(得分:1)

这是关于在Facebook平台上开发的许多令人讨厌的事情之一。通过浏览器会话注销的唯一方法是使用他们的javascript注销功能或像您尝试的重定向,但要么也会将用户从Facebook注销,这从用户的角度来看非常烦人。问题是,由于跨域限制,您无法访问他们为您的应用设置的cookie以删除它,因此您无法使用Facebook提供的有限选项。如果您没有提示offline_access,您可能会忘记用户访问令牌,它将在一小时后过期。虽然问题仍然存在,但cookie仍然在那个小时内设置。

相关问题