当前位置: 首页 > 知识库问答 >
问题:

OAuth2使用授权代码刷新令牌的目的

曹茂材
2023-03-14

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

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

注:我并不是在找一个回答说“刷新令牌是可选的”,因为我正在为amazon-alexa编写这个服务器,这是一个需要刷新令牌和授权代码授予类型的服务。

共有1个答案

苗康平
2023-03-14

如果oauth2服务器是根据authoriaztion codes的安全指南RFC 6749第10.5节编写的,则无法重用它来获得第二个access_token。

授权代码必须是短期和一次性使用的。如果授权服务器观察到多次尝试将授权代码交换为访问令牌,则授权服务器应尝试撤销所有已基于妥协的授权代码授予的访问令牌。

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

 类似资料:
  • 我执行本问题中描述的步骤: Laravel的5.3护照和api路由 从api的路径来看,一切都很好,我可以注册新用户,读取他们的数据等等。 然后在AuthServiceProvider上添加此命令 护照::代币ExpireIn(碳::现在()- 我以url{{url}}/oauth/token登录邮递员 正文:application/x-www-form-urlencoded { 授权类型:{pa

  • 我在使用带有Oauth2的Robot framework获取带有授权类型授权代码的访问令牌时遇到了一些问题。我们还使用用户名/密码验证,在给出以下参数后,我们得到我们的访问令牌:授权类型、回调URL、验证URL、访问令牌URL、客户端ID、客户端机密、范围、状态。 我也尝试过使用RequestsLibrary和ExtendedRequestsLibrary,但到目前为止还没有成功。实际上我不知道如

  • 我使用WSO2 API manager 1.10.0,WSO2 Identity Server 5.1.0配置为密钥管理器,MySQL Community Server 5.6用于数据库。当我尝试刷新通过授权代码授权类型获得的令牌(refresh_token授权类型)时,我收到400错误请求错误(invalid_grant -提供的授权授权无效),并且我无法获得新令牌。然后,我尝试使用client

  • 我对oauth2中的刷新令牌有点困惑。如它所说的访问令牌限制了黑客可以使用用户凭证的1小时的时间窗口,刷新令牌是万岁令牌,可以用来重新创建访问令牌。 我很困惑,如果有人从cookie中窃取了访问令牌,他也可以窃取刷新令牌,并可以使用刷新令牌创建新的访问令牌,因为我在JQuery中有ajax请求(客户端)

  • 我能够获得此访问令牌,但是,当我试图获得刷新令牌时,我得到一个错误。 在这一刻,我正在测试这个使用邮递员。 我正在做以下工作: null null null null null

  • 我已经在stackoverflow中阅读了一些关于这个主题的其他帖子,但我仍然没有找到解决方案...:\ 非常感谢您的支持!