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

如何在Keycloak中重复获取Google返回的Refresh Token?

Keycloak存储外部IDP Refresh Token及重复获取方法

1. Keycloak是否存储Google的Refresh Token?

是的,Keycloak会将Google这类外部身份提供商返回的Refresh Token持久化存储在用户与该IDP的关联记录中。只要用户完成过一次与Google的身份认证关联,这个Refresh Token就会被保留,除非用户解除关联或Google端主动撤销该令牌。

2. 如何重复获取该Refresh Token?

你之前使用的/broker/google/token接口并非仅能在首次登录时调用——只要用户已经与Google IDP建立关联,同一Realm下任意客户端获取的用户有效Keycloak Access Token,都可以用来调用该接口,获取对应的Google Refresh Token和Access Token。

注意事项:

  • 调用接口时需使用当前用户的有效Keycloak Access Token,默认情况下用户自身的AccessToken已具备访问该端点的权限,无需额外配置特殊客户端权限。
  • 若Google的Refresh Token已过期或被用户在Google端撤销,调用该接口会返回错误,此时需要用户重新完成与Google的身份认证。

适用重复调用的示例代码:

const config = {
  headers: {
    Authorization: `Bearer ${keycloakAccessToken}`
  }
}

let response = await axios.get(`${process.env.KEYCLOAK_ISSUER}/broker/google/token`, config)

关于Exchange Token方法的说明

你尝试的Exchange Token方法仅能获取Keycloak自身的Access Token,无法获取外部IDP的令牌,因此不适用你的场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 10:44:57