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

ReactJS+Axios调用.NET Core Web API时JWT签名无效致401错误

解决方案:React axios请求.NET Core API返回401无效令牌问题

1. 验证JWT令牌的完整性

  • 在浏览器控制台执行console.log(localStorage.getItem("jwtToken")),对比控制台输出的令牌与Postman中使用的令牌是否完全一致,重点排查是否存在多余空格、换行或引号。
  • 解析令牌确认结构与签名部分正常(可使用本地JWT解析工具检查)。

2. 修正GET请求的参数传递方式

GET请求不符合HTTP规范,不应携带请求体。将userId改为URL查询参数传递:

async function getAllUserTasks() {
    try {
      return axios({
        method: "get",
        url: "http://localhost:5133/todo/ToDos",
        headers: {
          Authorization: `Bearer ${localStorage.getItem("jwtToken")}`,
        },
        params: {
          userId: '924BF80F-F394-4927-8DCC-A7B67AFA663C'
        },
      });
    } catch (error) {
      console.log(error);
    }
  }

同时确保后端接口从查询参数中获取userId,而非请求体。

3. 检查请求头格式

在浏览器开发者工具的Network标签中查看发送的请求头,确认Authorization字段严格遵循Bearer + 空格 + 令牌的格式,无多余字符。

4. 确认CORS中间件顺序正确

CORS中间件必须在认证中间件之前启用,否则可能导致请求头处理异常:

// Program.cs 示例配置顺序
app.UseCors("MyPolicy");
app.UseAuthentication();
app.UseAuthorization();

5. 排查令牌有效性与密钥一致性

  • 检查令牌的exp字段,确认未过期。
  • 验证后端jwtSettings.Secret与生成令牌时使用的密钥完全一致,注意大小写、特殊字符的准确性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 20:50:25