gpt4 book ai didi

facebook - 如何续订过期的 Facebook 访问 token ?

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

我在 this reference 工作,并尝试实现 OAuth 协议(protocol)以允许用户通过 Facebook 登录我的网站。然而,Facebook 的文档非常糟糕,在几个关键部分还不清楚。

它说授权需要三个步骤:

  1. 用户身份验证(将用户重定向到 https://facebook.com/dialog/oauth?client_id=...&redirect_uri=...,并期望 redirect_uri 页面以 code 回调)。效果很好!

  2. 应用程序授权(由 Facebook 等处理)。效果很好!

  3. 应用认证(在回调页面,获取你获取的code并调用https://graph.facebook.com/oauth/access_token?client_id=... &redirect_uri=...&client_secret=...&code=...。响应的正文将包含一个 access_token 我们需要做的事情)

我知道使用 access_token,我可以调用 API 等。但是,当它到期时会发生什么?我可以得到一个新的,但是到那时它会在以后有很多 HTTP 请求,而且我不再有我用来首先得到它的 code。我是否必须将 codeaccess_token 一起存储?或者,我是否必须告诉用户重新登录才能获得新的 code 以获得新的 access_token

或者,我是否遗漏了一个关键部分?我不需要 offline_access token ,因为我只会轮询数据以响应用户操作。

最佳答案

access_token 过期时,用户将被 Facebook 视为“已注销”。您的应用将经历与第一次相同的过程,但用户可能不会。

如果用户没有撤​​销对您的应用程序的访问权限,并且用户当时已登录 Facebook,则应用程序授权过程将自行处理,用户无需执行任何操作,您将收到一个新的access_token.

如果用户没有撤​​销对您的应用程序的访问权限,但没有登录 Facebook,他们将在应用程序授权步骤中看到 Facebook 登录信息。他们不会再被要求授予您的应用程序权限,因为 Facebook 知道您的应用程序 ID 已获得该用户的授权。

最后,如果用户撤消了访问权限,那么他们将收到应用授权的原始请求,您将按照原始流程进行操作。

本质上,您应该将 access_token 视为易变的,而不是存储它,而是使用您在用户登录过程中收到的 access_token,这正在发生始终在幕后,只有在用户退出 Facebook 或撤销对您的应用程序的访问权限时才会涉及用户。

这与 Twitter 的 OAuth 不同,您可以通过它存储和重新使用它。

关于facebook - 如何续订过期的 Facebook 访问 token ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6710425/

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