ASP.NET Core Web API 6.0中JWT令牌无效问题求助
ASP.NET Core 6 Web API JWT授权“无效令牌”问题排查方案
核对JWT配置与令牌生成的一致性
确保program.cs中配置的Issuer、Audience、SigningKey和生成JWT令牌时的参数完全一致,哪怕大小写、字符长度或特殊字符的差异都会触发验证失败。同时确认签名算法匹配——如果配置用HS256,生成令牌时不能用RS256,反之亦然。校验令牌内容合法性
用离线JWT解码工具解析令牌,重点检查:exp(过期时间)是否已过期,当前时间需处于nbf(生效时间)和exp之间;iss、aud字段值是否与program.cs中的配置完全匹配;- 令牌是否被篡改——解码后重新编码对比原令牌,或直接验证签名有效性。
检查中间件注册顺序
确认program.cs中中间件注册顺序正确:AddAuthentication和AddJwtBearer必须在AddAuthorization之前注册,且UseAuthentication()要在UseAuthorization()之前调用,否则授权逻辑无法正确读取并验证令牌。确认包版本兼容性
检查Microsoft.AspNetCore.Authentication.JwtBearer包版本是否为6.x系列,确保与.NET 6.0框架兼容,避免版本不匹配引发的隐性验证错误。排查控制器授权特性使用
- 确认
[Authorize]特性未指定未配置的Policy,若指定策略,需确保program.cs中已正确配置对应JWT验证规则; - 检查是否存在
[AllowAnonymous]特性冲突,避免局部匿名设置覆盖全局授权规则。
- 确认
内容的提问来源于stack exchange,提问作者Syed Ali Rizvi
相关产品推荐
相关产品推荐

