我有一个使用Oauth 2与Facebook集成的应用程序。
我可以使用FB进行授权,并很好地查询他们的REST和Graph,但是当我授权使用FB创建一个活动浏览器会话时。然后,我可以很好地注销我的应用程序,但是使用FB的会话仍然存在,所以如果其他人使用该浏览器,他们将看到前面的用户FB帐户(除非前面的用户也手动退出FB )。
我所采取的授权步骤如下:
如果用户的浏览器还没有活动的FB会话,则此步骤将打开一个Facebook登录/连接窗口。一旦他们登录到facebook,他们就会用代码重定向到我的网站,我可以用oauth令牌交换代码。
现在我有了一个Oauth令牌,用户的浏览器被登录到我的站点和FB中。
让我说我的用户想注销我的网站。FB的条款和条件要求我执行单一的注销,所以当用户从我的网站登录时,他们也注销了脸书。有人认为这是有点愚蠢,但如果有任何方法来实现这一点,我很乐意遵守。
我看到有人建议:
答:我使用Javascript注销: FB.Connect.logout()。我试过使用它,但它没有起作用,我也不确定它是如何做到的,因为我在我的站点上没有以任何方式使用Javascript。会话不是由Javascript维护或创建的,所以我也不确定它应该如何过期。
使用链接: facebook.com/logout.php。这是一位管理人员不久前在Facebook论坛上提出的。给出的例子涉及到获取FB会话的旧方法(非oauth),因此我认为我无法在我的情况下应用它。
C.使用旧的REST或revokeAuthorization。我尝试了这两种方法,虽然它们确实过期了Oauth令牌,但它们不会使浏览器当前使用的会话失效,因此没有效果,用户不会退出Facebook。
我真的有点不知所措,Facebook的文档不完整,模棱两可,而且相当糟糕。论坛上的支持是不存在的,目前我甚至无法登录facebook论坛,除此之外,他们自己的FB集成甚至不能在论坛上运行。并不能激发多少信心。
你们能提供的任何帮助。德里克
ps。必须改变HTTPS的链接,而不是足够的业力来发布链接,这可能是足够公平的。
发布于 2010-05-10 06:03:17
我也有同样的问题。我还使用oauth登录(我使用的是RubyOnRails),但对于注销,我使用如下链接使用JavaScript进行登录:
<a href="/logout" onclick="FB.logout();">Logout</a> 这首先调用onclick函数并在facebook上执行注销,然后调用我的站点的普通/logout函数。
虽然我也更喜欢服务器端解决方案,但至少它能做我想做的事情,它会在两个站点上记录我。
我对Facebook的整合内容也很陌生,并且第一次使用它,但我的总体感觉是,文档在各地都很流行,有很多过时的东西。
发布于 2010-07-28 06:14:19
这个解决方案不再适用于FaceBook当前的API (似乎它最初是无意的)
http://m.facebook.com/logout.php?confirm=1&next=http://yoursitename.com;试着在你的签名链接或按钮上提供这个链接,其中"yoursitename.com“是你想要重定向的地方,在签名之后可能是你的主页。
起作用了..。
发布于 2012-03-21 06:09:55
到目前为止,这是可行的,并记录在facebook的网站@ http://developers.facebook.com/docs/authentication/上。不确定它是最近几年添加到文档中的,我在查看2012年2月时非常确定它不在那里
您可以通过将用户重定向到 代币
https://stackoverflow.com/questions/2764436
复制相似问题