ASP.NET Core 5.0部署后JWT Token audience验证失败求助
排查步骤
- 先确认部署环境的配置是否被覆盖
云托管服务通常支持通过环境变量、服务配置页覆盖appsettings.json内的参数,优先检查API和前端线上运行的实际Jwt:Audience值,必须完全一致,大小写、末尾有没有斜杠的差异都会触发校验失败。 - 确认Token内的aud字段和校验值匹配
把登录成功后返回的AccessToken解码,查看payload里的aud字段实际内容,和校验时传入的ValidAudience值逐一对比,确保生成Token和校验Token时用的audience值没有偏差。 - 确认前端校验逻辑的配置来源
你的鉴权过滤器运行在前端应用中,如果前端是本地执行Token校验,确保前端读取的Jwt配置和API生成Token时的配置完全相同,不要出现API已经用了线上域名、前端配置还保留本地调试地址的低级错误。 - 打印异常定位根因
临时修改ValidateToken的catch块,把完整异常信息输出到日志,确认报错确实是audience校验失败,排除Issuer、签名密钥、时区导致的过期时间校验失败等其他问题。
优化方案
建议把Audience改成和域名无关的固定字符串,比如"RestaurantPortal_Aud",前后端统一用该值作为配置,完全避免域名变更、地址格式差异导致的校验问题。
内容的提问来源于stack exchange,提问作者Kamran Khan
相关产品推荐
相关产品推荐

