【问题标题】:Not getting a refresh token from Auth0.authorize() - PKCE未从 Auth0.authorize() 获取刷新令牌 - PKCE
【发布时间】:2020-01-14 20:29:24
【问题描述】:

我在 Auth0 中有一个使用 PKCE 流程的本机应用程序。当我使用 Auth0.js 从 Ionic 应用程序调用 Auth0.authorize() 时,我得到一个访问令牌和一个 ID 令牌,但没有刷新令牌。

我将 offline_access 范围传递给 Auth0.authorize()(以及 openid profile)。我使用的 API 启用了“Allow Offline Access”。我没有定义任何规则。

Auth0 中的应用在高级设置中启用了以下授权:隐式、授权码、刷新令牌。

在我的客户端应用程序的 Auth0 配置中,我正在设置:

...,
audience: 'xxxxxxxxx', /* My API identifier */
responseType: 'token id_token'

我的重定向回调正在接收哈希参数,例如: access_token=xxxxx&scope=openid%20profile%20offline_access&expires_in=7200&token_type=Bearer&state=xxx&id_token=xxxxx 但没有 refresh_token。

我错过了什么?

【问题讨论】:

    标签: auth0 openid-connect


    【解决方案1】:

    如果响应类型为id_token token 并且scope 包括openid,则这是一个以隐式流作为身份验证路径的OpenID Connect (OIDC) 协议。在这种情况下,不会发出刷新令牌。

    来自OIDC Core 规范:

    身份验证可以遵循以下三种路径之一:授权码 流 (response_type=code)、隐式流 (response_type=id_token tokenresponse_type=id_token),或混合流...

    混合流要求response_typecode 作为第一个单词。因此,您处于隐式流域。根据 OIDC 规范,授权代码和混合流会发出刷新令牌,而隐式流则不会。

    【讨论】:

      猜你喜欢
      • 2017-12-28
      • 2019-02-25
      • 2021-06-12
      • 1970-01-01
      • 2019-04-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-02
      相关资源
      最近更新 更多