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

如何从自有网站获取Keycloak重置密码的session_code与tab_id

解决Keycloak自定义密码重置页获取session_code和tab_id的问题

核心思路

你邮件里的重置链接带的密钥(一般是key参数)不能直接解码,得通过Keycloak的官方端点去换取需要的session参数。具体步骤如下:

  • 第一步:提取邮件链接中的重置密钥
    你的自定义重置链接应该是类似https://your-site.com/reset-password?key=abc123xyz的格式,先从请求里拿到这个key值。

  • 第二步:服务器端调用Keycloak的重置凭证端点
    在你的后端服务里,用这个key发起GET请求到Keycloak的重置凭证接口:

    # Keycloak 17+版本路径
    GET https://your-keycloak-domain/realms/{你的Realm名}/login-actions/reset-credentials?key={提取到的key}&client_id={你的应用客户端ID}&redirect_uri=https://your-site.com/reset-password
    

    (老版本Keycloak路径要加/auth前缀:/auth/realms/{realm}/...)

  • 第三步:从响应中提取目标参数
    这个请求会返回一个3xx重定向响应,响应头里的Location字段会包含你需要的所有参数,比如:

    https://your-site.com/reset-password?session_code=xxxx&execution=UPDATE_PASSWORD&client_id=xxxx&tab_id=xxxx
    

    直接解析这个Location里的session_code和tab_id即可。

关键注意事项

  • 这个请求必须在服务器端发起,不能放在前端JS里,避免重置密钥泄露。
  • 确保Keycloak客户端配置的Valid Redirect URIs包含你的自定义重置页地址,否则Keycloak会拒绝请求。
  • 如果你用的是最新版Keycloak,记得去掉路径里的/auth前缀,这是新版本的路由变化。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 03:01:12