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

使用nest-keycloak-connect遇ISS错误:realmUrl缺失前缀

解决Nest.js + nest-keycloak-connect中"invalid token (wrong ISS)"错误

问题根源

出现"invalid token (wrong ISS)"错误的核心原因是Keycloak配置中的auth-server-url缺少了Keycloak的标准路径后缀/auth,导致nest-keycloak-connect生成的realmUrl不完整,无法与token中的issuer(ISS)字段匹配。

解决方案

1. 修正Keycloak配置

将auth-server-url补充完整的路径后缀/auth,修改后的配置如下:

keycloak: {
  'auth-server-url': 'http://192.168.0.35:9090/auth', // 添加/auth后缀
  realm: 'my-realm',
  'ssl-required': 'external',
  resource: 'my-api',
  'confidential-port': '0',
  clientId: 'my-api',
  secret: 'secret',
},

2. 验证Token的Issuer字段

通过JWT解码工具查看获取到的token,确认iss字段格式为:
http://192.168.0.35:9090/auth/realms/my-realm
该值需要与nest-keycloak-connect内部生成的realmUrl完全一致,才能通过验证。

3. 额外检查项

  • 确认Swagger配置中的realm值与Keycloak配置的realm完全一致
  • 登录Keycloak后台,检查客户端my-api的设置:
    • 访问类型需设置为confidential
    • 已启用"服务账户"
    • 配置的secret与代码中填写的完全匹配

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 08:07:33