You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Keycloak刷新令牌问题:新令牌与旧令牌过期时间相同如何解决

解决Keycloak刷新令牌过期时间不更新的问题

你遇到的问题是Keycloak客户端的刷新令牌策略配置导致的,按以下步骤调整即可解决:

  • 进入Keycloak管理控制台,找到对应的客户端,切换到「Settings」标签页
  • 找到Refresh Token Policy配置项:
    • 若当前设置为「Absolute」,刷新令牌的过期时间会沿用初始令牌的过期时间,不会更新
    • 将其修改为「Relative」,这样每次调用refresh_token接口时,新刷新令牌的过期时间会从当前请求时间重新计算
  • 同时确认客户端的Refresh Token Lifespan(刷新令牌有效期)设置了合理值,比如7天或根据业务需求调整

如果使用的是离线刷新令牌(获取时带scope=offline_access),还需要检查客户端的离线会话配置:

  • 调整Offline Session Idle Timeout(离线会话空闲超时)和Offline Session Max Lifespan(离线会话最大生命周期),确保策略为相对时间更新

调用refresh_token接口的示例请求:

curl -X POST 'http://你的Keycloak域名/realms/你的领域/protocol/openid-connect/token' \
-H 'Content-Type: application/x-www-form-urlencoded' \
-d 'grant_type=refresh_token' \
-d 'refresh_token=原刷新令牌' \
-d 'client_id=你的客户端ID' \
-d 'client_secret=你的客户端密钥' # 仅当客户端为Confidential类型时需要

调整配置后,再次调用接口获取的新刷新令牌,其过期时间就会从当前时间开始更新。

内容的提问来源于stack exchange,提问作者Haseeb

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 08:35:23