【问题标题】:Getting offline token alongside refresh token获取离线令牌和刷新令牌
【发布时间】:2018-09-30 18:53:41
【问题描述】:

我在我的 Web 应用程序中使用授权代码流。我想为 Web 应用程序本身获取一个刷新令牌,还想获得一个离线令牌,我将保存在数据库中,以便稍后将其用于离线任务。

但是我正在为此苦苦挣扎。我不能使用授权类型的密码,因为我不想再次要求用户输入他/她的凭据,而且授权码只是一次性使用,因此我无法将其与当前流程集成。

还有其他方法可以从不同的令牌生成离线令牌吗?我曾尝试使用授权类型 refresh-token 和范围 offline_access,但没有奏效。

【问题讨论】:

    标签: oauth-2.0 access-token openid-connect keycloak


    【解决方案1】:

    在继续使用 Keycloak 几个月后,答案很简单:不可能。

    离线令牌实际上是一个没有过期时间的刷新令牌,因此您可以获取其中一个,但不能同时作为同一请求/响应的一部分。

    从用户的角度来看,我们创建了一个新页面来使用密码授予类型和离线范围请求此令牌。用户需要重新输入他的密码,但从安全角度来看似乎没问题。考虑到获取此令牌的要求,这种方法适用于我们,因为这是一项不寻常的任务。

    【讨论】:

      【解决方案2】:

      您还可以使用服务帐户生成离线令牌,请查看service account 上的 keycloak 文档。

      关注discussion将帮助您了解生成和使用离线令牌的不同场景

      【讨论】:

      • 感谢您的评论。但是,服务帐户会代表客户端本身给我一个令牌,而我需要的是代表连接到 webapp 的用户获取一个令牌。
      • 我也有同样的问题。您能找到一种无需再次登录即可获取和离线令牌的方法吗?
      猜你喜欢
      • 1970-01-01
      • 2013-03-16
      • 2012-11-26
      • 2020-09-25
      • 2015-07-19
      • 2022-01-23
      • 2019-10-26
      • 2020-12-09
      • 2012-05-04
      相关资源
      最近更新 更多