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

Spring Boot Google OAuth2.0 REST API JWT解码失败问题排查

解决JWT解码无效问题

错误根源分析

错误提示明确指出:JWT头不是有效的JSON对象,而是字符串。这说明要么请求中的Token格式错误,要么Token本身不符合标准JWT结构,导致解码时无法解析出合法的JSON头。

解决方案步骤

1. 检查请求Authorization头格式

确保请求头严格遵循 Bearer <完整JWT Token> 格式:

  • Bearer 与Token之间必须有一个空格
  • Token不能包含多余的引号、换行、空格或其他无关字符(比如前端不要把Token用双引号包裹后传递)

2. 验证JWT Token的合法性

确认Token是标准的三段式结构:header.payload.signature,每一段都是Base64URL编码,中间用英文点号分隔。可以用本地解码逻辑验证Token结构是否正确,避免Token本身损坏或格式错误。

3. 调整JwtDecoder配置

你的代码中手动指定了RS256签名算法,但Spring Security可以自动从JWKS端点获取IDP支持的签名算法,硬编码可能导致算法不匹配。修改JwtDecoder Bean如下:

@Bean
public JwtDecoder jwtDecoder() {
    return NimbusJwtDecoder.withJwkSetUri(jwkSetUri).build();
}

4. 排查Token有效性

  • 确认Token未被篡改、处于有效期内
  • 检查JWKS端点是否能正常访问,确保应用可以获取到正确的公钥用于签名验证

5. 调试请求头内容

可以在Security过滤器链中添加调试逻辑,打印实际收到的Authorization头内容,确认传递的Token是否符合预期,排除前端传递错误的情况。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 09:06:01