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

JWT认证:设置Authorization Bearer Token后无法访问其他接口排查

问题分析与解决方案

1. 变量名笔误(核心错误)

你的代码里生成Token的变量是token,但设置响应头时误用了未定义的TokenString,这会导致Authorization头的值仅为Bearer (空Token),甚至可能引发运行时错误。

修复代码:

// 将 TokenString 替换为实际生成的 token 变量
w.Header().Add("Authorization", "Bearer "+token)

2. 跨域场景下暴露响应头

如果前端与后端是跨域部署,浏览器默认会限制前端读取Authorization这类非简单响应头。需要在登录接口的响应中添加Access-Control-Expose-Headers头,允许前端获取该字段:

// 在设置 Authorization 头之后添加
w.Header().Add("Access-Control-Expose-Headers", "Authorization")

3. 前端需主动携带Token

登录接口返回的Authorization头是给前端保存用的,浏览器不会自动在后续请求中携带这个头。前端需要:

  • 从登录接口的响应头中提取Authorization的值
  • 保存到本地(如localStorage或sessionStorage)
  • 在请求其他需要授权的接口时,手动在请求头中添加Authorization: [保存的完整Token串]

验证方式

修复后,可通过Postman测试:先调用登录接口,查看响应头是否正确返回Authorization: Bearer [有效Token];再携带该头请求其他接口,检查后端是否能通过r.Header.Get("Authorization")获取到值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 22:17:06