Keycloak 离线令牌注销后失效

问题描述 投票:0回答:1
  1. 我通过使用authorization_code(scope=openidoffline_access)向/openid-connect/token发送请求来获取离线令牌。在 Keycloak 管理控制台的“离线访问”选项卡中,我可以看到为我用来登录的用户创建的离线令牌。 (离线代币:

  2. 然后我通过调用 /openid-connect/logout 来注销用户,并从 1. 发送离线令牌作为参数。在 Keycloak 管理控制台的“离线访问”选项卡中,我可以看到用于登录的用户的离线令牌已被删除。 (离线代币:0)

  3. 然后我尝试通过我用于注销的离线令牌来获取访问令牌。我收到以下响应:未找到离线用户会话。

我希望尽管注销,应用程序仍然可以使用离线令牌来获取新的访问令牌。

正如离线访问 | 中所述keycloak-documentation :“应用程序可以将此离线令牌保存在数据库或磁盘上,即使用户注销也可以稍后使用它”。

我的用户具有offline_access 角色的角色映射。客户在其范围内也具有该角色。

我做错了什么吗?

keycloak token offline
1个回答
0
投票

从本地客户端应用程序注销和从 Keycloak 注销之间存在差异。

从本地客户端注销(终止本地会话)仍然允许客户端在后台使用令牌。因此,这完全取决于您如何“定义”注销的含义。

另一种方法是,无论用户是否登录,您的客户端都使用客户端凭据流与后端 API 进行通信。

© www.soinside.com 2019 - 2024. All rights reserved.