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

无法使用JWT令牌调用.NET Core API的问题求助

正确调用带JWT认证的API方式

你的接口添加[Authorize]后无法命中,核心问题是JWT令牌传递方式不符合认证中间件的要求,以下是标准解决方案:

1. 标准JWT传递方式(必须)

JWT令牌需要通过HTTP请求头传递,格式为:

Authorization: Bearer <你的JWT令牌字符串>

示例:

Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1bmlxdWVfbmFtZSI6InZhc2FudGgiLCJuYmYiOjE2OTYzMTUyMDAsImV4cCI6MTY5NjMxODgwMCwiaWF0IjoxNjk2MzE1MjAwfQ.xxxxxxx

2. 完整调用步骤

调用get_token_step2接口时,需同时满足:

  • 请求方法为POST
  • 请求Body中正常传入AuthenticateModel对应的JSON数据(比如{"schoolId":"xxx","password":"xxx"}这类结构)
  • 必须在请求头中添加上述格式的Authorization字段

3. 你现有尝试的问题分析

从常见错误场景判断,你两种尝试的问题大概率是:

  • 若尝试1是把JWT放在请求Body里:默认JWT认证中间件不会从Body读取令牌,因此认证失败
  • 若尝试2是把JWT作为URL参数传递:默认配置下,认证中间件也不会解析URL参数里的令牌,需额外配置且不推荐这种不安全的方式

4. 额外排查点

  • 用JWT解析工具验证你的令牌是否有效(签名正确、未过期、Issuer/Audience与后端配置一致)
  • 确保后端已正确配置JWT认证中间件(比如在Program.cs中添加AddJwtBearer,并启用UseAuthentication()和UseAuthorization())
  • 建议在接口的catch块中添加日志输出,方便查看认证失败的具体异常信息

内容的提问来源于stack exchange,提问作者Vasanth R

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 03:05:08