OAuth2刷新令牌实用程序

时间:2016-05-25 21:12:45

标签: oauth-2.0

在为资源所有者密码凭据授予实施授权/资源服务器之前,我正在阅读OAuth2 RFC 6749 specs

我了解客户端应用程序使用 refresh_token (及其凭据)来获取最终用户(资源所有者)的新访问令牌,而不是存储最终用户的用户名/密码,并在每次access_token到期时发送。

然而,对我而言,这听起来像refresh_token和access_token一样好,它几乎只是一个额外的服务器调用,所以为什么不直接使用它,即如果刷新令牌是有效的授权访问?

我还认为每个最终用户的会话有一个刷新令牌是正确的吗?

1 个答案:

答案 0 :(得分:1)

  

然而,对我而言,这听起来像refresh_token一样好   access_token,它只是一个额外的服务器调用,所以为什么不呢   直接使用它,即刷新令牌是否有效授权访问?

因为对授权服务器的额外服务器调用对于确保仍允许访问客户端应用程序非常重要。如果不与授权服务器通信,资源服务器将无法验证刷新令牌是否仍然良好。但这不是资源服务器的关注点。

有效的访问令牌是 bearer 令牌。它直接在资源服务器上用于获取数据 - 没有问题。如果它没有过期,并且它有适当的范围 - 这里是数据,无论你是谁!

另一方面,刷新令牌必须与客户端凭证一起呈现给授权服务器。授权服务器可以选择验证资源所有者是否已撤销对该客户端的访问权限,或者客户端应用程序本身仍然有效。如果确定,授权服务器可以创建一个新的,短命的承载访问令牌,这与拥有它的任何人一样好!