刷新Oauth2.0中的令牌


Refresh token in Oauth2.0

我正在发出一个OAuth 2.0请求,它正在返回带有refresh_token and access_token的JSON,为什么OAuth2.0中有2个?

  • 哪一个是短命的
  • 两者的目的是什么

我在SO上读到了这个问题,但这对我没有太大帮助,在这方面的任何帮助都将不胜感激感谢

access token是用于验证服务请求的。它通常包含有关用户的详细信息,或者直接映射到有关用户的权限和他授予的权限。
这些代币是短期的,大约一个小时,每个提供者的实际持续时间不同。

另一方面,refresh tokens用于在您的访问令牌过期时获得新的访问令牌。它们的寿命要长得多(有时是无限的,直到明确撤销)。

现在,让我们考虑一个端到端的场景。假设你创建了一个代表用户执行Facebook操作的应用程序——在他们的时间线上发布。

  • 你的应用程序重定向用户登录Facebook-你使用Facebook SDK
  • 当用户成功登录并授予您所需的权限(在时间线上发布)时,您将获得一个访问令牌和一个刷新令牌
  • 您的应用程序现在可以访问Facebook API,以的名义使用访问令牌在用户的时间线上发布。此令牌可以使用一小时(或访问令牌有效的任何时间)
  • 一旦令牌即将过期,您可以点击Facebook API刷新访问令牌,因为此令牌即将过期。因此,您使用refresh + access tokens调用API
  • API会返回一个新的访问令牌给您-您现在可以使用它,直到它过期为止

PS-这不是Facebook的实际情况。这只是一个随机的例子,用来解释刷新和访问令牌的区别

如果这是有道理的,回到你所联系的问题。它有一些非常好的答案。:)