在Oauth2.0中刷新令牌

时间:2014-09-03 20:57:48

标签: php oauth oauth-2.0 salesforce access-token

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

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

read this question关于SO,但这对我没什么帮助,在这方面的任何帮助将不胜感激 感谢

1 个答案:

答案 0 :(得分:1)

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

另一方面,refresh tokens用于获取您已到期的新访问令牌。他们有更长的时间(有时是无限的,直到明确被撤销)。

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

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

PS - 这实际上不是Facebook的发生方式。这只是一个随机的例子来解释刷新和访问令牌的不同之处。

如果这有意义,请回到您已关联的问题。它有一些非常好的答案。 :)