具有授权代码的刷新令牌的OAuth2目的

时间:2016-08-04 02:58:01

标签: oauth-2.0

我想我使用授权代码授权类型获得了OAuth2的流程。 资源所有者登录到服务器,然后使用授权代码重定向到客户端。然后,客户端使用授权代码向授权服务器查询访问令牌和刷新令牌。这是我感到困惑的地方。

当访问令牌过期时,客户端是否应使用授权码或刷新令牌来获取新的访问令牌?如果您有授权码,为什么还需要刷新令牌?

注意我不是在寻找答案"刷新令牌是可选的" 因为我正在编写这个服务器,amazon-alexa,需要刷新令牌和授权代码授予类型的服务。

1 个答案:

答案 0 :(得分:1)

如果oauth2服务器是根据授权代码RFC 6749 Section 10.5的安全准则编写的,则无法重复使用它来获取第二个access_token。

  

授权码必须是短暂的并且一次性使用。如果      授权服务器观察多次交换的尝试      访问令牌的授权码,授权服务器      应该尝试撤销已经授予的所有访问令牌      受损的授权码。

如果授予了refresh_token,则可以使用refresh_token grant将其替换为另一个access_token和new refresh_token。如果在这种情况下refresh_token仍然有效,则用户不必重新进行身份验证。