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

无需重新登录,如何更新Keycloak的ID Token?

Keycloak无需重新登录更新ID Token的方法
  • 利用Refresh Token获取新ID Token
    在授权码流登录后,客户端会持有refresh_token。调用Keycloak的token接口:

    POST /realms/{你的领域名}/protocol/openid-connect/token
    Content-Type: application/x-www-form-urlencoded
    
    grant_type=refresh_token&refresh_token={你的refresh_token}&client_id={客户端ID}&client_secret={客户端密钥(保密客户端需要)}
    

    接口返回的响应里会包含新的id_token,其中已经同步了最新的手机号。需要注意refresh_token有有效期,且默认使用后旧token会失效,可在客户端配置里调整刷新策略。

  • 调用用户信息接口获取最新数据(无需更新ID Token)
    如果只是需要获取最新的用户手机号,不一定非要替换Cookie里的ID Token。用当前有效的access_token调用用户信息接口:

    GET /realms/{你的领域名}/protocol/openid-connect/userinfo
    Authorization: Bearer {你的access_token}
    

    返回的结果是Keycloak数据库中实时的用户数据,直接取手机号即可,适合前端实时展示最新信息的场景。

  • 自定义Keycloak扩展强制刷新会话(进阶)
    开发Keycloak事件监听器,监听用户属性更新的事件,触发用户会话的ID Token刷新;或者自定义一个REST端点,调用Keycloak内部API强制更新指定用户会话的ID Token。这种方式需要管理员权限开发和部署扩展,适合有定制化需求的场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 00:52:08