React前端Node后端集成Node Expose SSPI遇JSON解析错误求解决
解决方案:SSO按钮点击后JSON解析错误
这个错误的核心是:前端点击按钮后发起的SSO请求,后端返回的是HTML内容(比如404页面、认证跳转页面),而非预期的JSON数据,导致JSON解析失败。以下是具体排查和解决步骤:
核对前后端接口路径一致性
检查前端代码中请求SSO的URL(比如/api/sso/init这类),和后端Node.js的路由配置是否完全匹配。如果路径拼写错误、端口不对应,后端会返回404页面的HTML,触发这个错误。可以直接用curl或Postman调用后端接口,验证返回内容是否为JSON。回滚npm audit fix修改的依赖
npm audit fix可能自动升级或替换了示例代码中的依赖包(比如express、axios、passport相关库),导致原有SSO逻辑出现兼容性问题。建议对比示例仓库的package.json,把依赖版本还原到原始状态,执行rm -rf node_modules && npm install后重新启动项目测试。排查Kerberos认证与SSO逻辑的冲突
你的网站本身集成了Kerberos认证,可能后端的SSO接口被Kerberos认证中间件拦截,返回了Kerberos认证相关的HTML页面(比如登录跳转页)。需要调整后端中间件顺序,让SSO接口路径跳过Kerberos认证拦截,确保请求能正常到达SSO处理逻辑。查看后端运行日志定位问题
启动Node.js后端时打开控制台日志,点击SSO按钮后观察日志输出:- 如果出现
Cannot GET /xxx,说明路由未正确配置; - 如果出现认证相关错误,说明Kerberos或SSO认证逻辑触发了重定向,返回了HTML;
根据日志信息针对性修复后端逻辑,确保接口始终返回JSON格式响应(包括错误场景)。
- 如果出现
内容的提问来源于stack exchange,提问作者Muhammad Hassan
相关产品推荐
相关产品推荐

