【问题标题】:Refresh Token is missing in the JWT ResponseJWT 响应中缺少刷新令牌
【发布时间】:2018-08-25 18:33:25
【问题描述】:

我正在尝试使用以下端点和以下请求生成 OAUTH 访问令牌。但不幸的是,我没有在响应中获得刷新令牌,并且所有其他详细信息都在响应中成功显示。

端点: oauth2/token

请求:

资源:resource name, client_id : client_id, grant_type : client_credentials, client_secret : client_secret

回应:

"token_type": "Bearer",
"expires_in": "3600",
"ext_expires_in": "0",
"expires_on": "1526380235",
"not_before": "1526376335",
"resource":  <<resource name>>
"access_token": <<generated token>>

我是否遗漏了此请求中的任何内容?

【问题讨论】:

    标签: azure oauth oauth-2.0


    【解决方案1】:

    如果您使用客户端凭据进行身份验证,则不会获得刷新令牌。您每次都需要使用凭据。

    无论如何,重点是什么? 如果您获得了刷新令牌,则无论如何都需要向 Azure AD 提供凭据才能获取新令牌。

    关键是在这种情况下您不需要刷新令牌。

    【讨论】:

    • 您好 Juunas,实际上,我需要使用刷新令牌更新访问令牌以进行场景测试之一。我们是否有任何其他授予类型可以提供刷新令牌?
    • 好吧,让我们退后一步。如果您只有客户端凭据,则可以随时使用您已经完成的操作获取新的访问令牌。但是,如果您确实需要为用户获取访问令牌,那么您可以在对用户进行身份验证时获取刷新令牌。您要更新什么令牌?
    • 我需要测试以下 2 个场景 1. 使用过期访问令牌的请求 2. 在最初生成的访问令牌过期后使用更新的访问令牌进行请求 对于第一个场景,我可以使用在过期时间后过期的访问令牌 对于第二种情况,我假设使用刷新令牌概念来更新访问令牌。我们可以用刷新令牌实现第二种情况吗?否则,我将根据您的 cmets 在过期时间后重新生成访问令牌
    • 第二种情况是通过使用客户端凭据请求新的访问令牌来实现的,与获取第一个的方式相同。
    • 是的。我会在到期后重新生成令牌。除此之外,我们可以撤销 Azure 中的访问令牌吗?
    猜你喜欢
    • 2021-08-20
    • 2016-03-08
    • 2021-06-03
    • 1970-01-01
    • 2016-03-05
    • 2016-06-25
    • 1970-01-01
    • 1970-01-01
    • 2017-10-03
    相关资源
    最近更新 更多