Keycloak升级至25版本后前端登录出现无限重定向循环问题
#iss参数)解决思路 针对你遇到的升级后前端登录无限重定向、#iss参数不断追加的问题,结合Keycloak 24-25版本的变更,给出以下排查和解决步骤:
核对适配器
issuer配置与服务端路径
Keycloak 17+重构后默认移除了/auth上下文路径,若你之前23版本的适配器配置用的是https://xxx/auth/realms/xxx,升级到25后需改为https://xxx/realms/xxx。如果路径不匹配,适配器无法正确识别令牌的iss声明,会不断尝试在重定向URI后追加#iss参数,导致循环。验证客户端Frontchannel相关配置
进入Keycloak客户端配置页,检查:Frontchannel Logout是否开启,若开启需确保Logout Redirect URI已正确配置(可与登录重定向URI一致);Valid Redirect URIs是否包含完整的前端回调路径,注意通配符使用是否规范(避免过度宽松或遗漏)。
清理前端缓存与认证Cookie
升级后旧的认证Cookie(如KEYCLOAK_SESSION、KEYCLOAK_IDENTITY)和前端缓存可能与新版本不兼容,导致适配器无法正确识别认证状态。强制清理浏览器缓存,删除Keycloak相关Cookie后重新测试。检查令牌
iss声明的一致性
用本地JWT解析工具查看获取到的ID令牌/访问令牌,确认iss字段的值与适配器配置的issuer完全一致(包括协议、域名、路径,大小写也要匹配)。任何不一致都会触发适配器的重定向逻辑。确保适配器版本与服务端完全匹配
虽然升级了angular keycloak-adapter,但需确认版本与Keycloak 25严格对应。Keycloak官方要求客户端适配器版本与服务端版本保持一致,版本不匹配可能导致认证流程逻辑冲突。检查Realm的Frontend URL配置
进入Realm设置页,确认Frontend URL配置为前端能正常访问的Keycloak地址(如https://your-keycloak-domain)。该配置错误会导致Keycloak返回的令牌iss地址与前端实际访问地址不符,引发适配器验证失败。
内容的提问来源于stack exchange,提问作者Maxime

