gpt4 book ai didi

Facebook Oauth 注销

转载 作者:行者123 更新时间:2023-11-30 05:13:27 28 4
gpt4 key购买 nike

我有一个使用 Oauth 2 与 Facebook 集成的应用程序。

我可以使用 FB 授权并很好地查询他们的 REST 和图形 API,但是当我授权时,一个事件的浏览器 session 是使用 FB 创建的。然后我可以很好地注销我的应用程序,但与 FB 的 session 仍然存在,因此如果其他人使用浏览器,他们将看到以前的用户 FB 帐户(除非以前的用户也手动注销 FB)。

我授权的步骤是:

  1. 调用 [LINK: graph.facebook.com/oauth/authorize?client_id...]

如果用户的浏览器还没有事件的 FB session ,此步骤将打开 Facebook 登录/连接窗口。一旦他们登录到 Facebook,他们就会使用代码重定向到我的网站,我可以用代码交换 oauth token 。

  1. 使用 (1) 中的代码调用 [LINK: graph.facebook.com/oauth/access_token?client_id..]

现在我有一个 Oauth token ,用户的浏览器已登录到我的网站和 FB。

  1. 我调用一堆 API 来做一些事情:即 [LINK: graph.facebook.com/me?access_token=..]

假设我的用户想要退出我的网站。 FB 条款和条件要求我执行单点注销,因此当用户退出我的网站时,他们也会退出 Facebook。有人认为这有点愚蠢,但如果有任何方法可以实际实现这一点,我很乐意遵守。

我看到的建议是:

一个。我使用 Javascript API 注销:FB.Connect.logout()。好吧,我尝试过使用它,但它没有用,而且我不确定它究竟如何,因为我没有在我的网站上以任何方式使用 Javascript API。 session 不是由 Javascript API 维护或创建的,所以我也不确定它应该如何过期。

B.使用 [链接:facebook.com/logout.php]。这是前段时间由 Facebook 论坛的管理员建议的。给出的示例与获取 FB session (非 oauth)的旧方法相关,因此我认为我不能将其应用于我的案例。

C.使用旧的 REST api expireSession 或 revokeAuthorization。我尝试了这两种方法,虽然它们确实使 Oauth token 过期,但它们不会使浏览器当前使用的 session 无效,因此它没有任何效果,用户没有从 Facebook 注销。

我真的有点无所适从,Facebook 文档零散、模棱两可而且非常糟糕。论坛上的支持是不存在的,目前我什至无法登录 facebook 论坛,除此之外,他们自己的 FB Connect 集成甚至不能在论坛本身上运行。不会激发太多信心。

感谢您提供的任何帮助。 德里克

附言。不得不将 HTTPS 更改为 LINK,没有足够的业力来发布链接,这可能是公平的。

最佳答案

我遇到了同样的问题。我也使用 oauth 登录(我使用的是 RubyOnRails),但对于注销,我使用 JavaScript 使用如下链接完成:

<a href="/logout" onclick="FB.logout();">Logout</a> 

这首先调用onclick 函数并在facebook 上执行注销,然后调用我站点的正常/logout 函数。

虽然我也更喜欢服务器端解决方案,但至少它能满足我的要求,它会在两个站点上注销我。

我对 Facebook 集成的东西也很陌生,第一次接触它,但我的总体感觉是文档到处都是,有很多过时的东西。

关于Facebook Oauth 注销,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2764436/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com