尝试跳转登录时出现redux-oidc JavaScript错误,应在何处排查修复?
你截图中出现的是oidc-client-js抛出的响应类型不支持错误,属于OIDC配置不匹配的典型问题,可按照以下步骤定位和修复:
定位步骤
- 打开浏览器控制台「网络」标签,找到发往你的IDP服务的
/.well-known/openid-configuration元数据请求,检查响应中response_types_supported字段是否包含你前端配置的响应类型 - 核对redux-oidc的用户管理器配置中
response_type字段的取值,确认与IDP支持的类型匹配 - 检查Identity Server侧对应客户端的配置,核对授权类型、允许的响应类型、允许的作用域三个配置项是否和前端匹配
- 确认元数据请求没有被CORS策略拦截,如果你用http部署前端,还要检查Identity Server是否允许http协议的客户端请求
修复方案
授权码流(生产环境推荐)
确保三处配置完全统一:
- redux-oidc配置中设置
response_type: 'code' - Identity Server客户端
AllowedGrantTypes设为GrantTypes.Code - Identity Server客户端
AllowedResponseTypes列表中加入code - 确保客户端配置的
AllowedScopes包含前端请求的所有scope,至少包含必填的openid
隐式流(仅本地调试使用)
对应配置调整为:
- redux-oidc配置中设置
response_type: 'id_token token' - Identity Server客户端
AllowedGrantTypes设为GrantTypes.Implicit - 开启Identity Server客户端的
AllowAccessTokensViaBrowser属性为true
如果确认上述配置都没有问题,可将用户管理器的loadUserInfo属性临时设为false测试,排除用户信息端点权限问题导致的错误。
内容的提问来源于stack exchange,提问作者radulfr
相关产品推荐
相关产品推荐

