软件帮帮网
柔彩主题三 · 更轻盈的阅读体验

JWT放在HTTP请求头哪里(实用技巧版)

发布时间:2026-01-04 09:00:55 阅读:64 次

很多开发者在做前后端分离项目时,都会用到 JWT(JSON Web Token)来做用户身份验证。但新手常遇到一个问题:JWT 到底该放在 HTTP 请求头的哪个位置?其实答案很明确,也并不复杂。

标准做法:放在 Authorization 头

按照通用规范,JWT 应该放在 HTTP 请求头的 Authorization 字段中,并以 Bearer 为前缀。这是一种被广泛接受的认证方式,大多数后端框架和 API 都默认支持这种格式。

例如,前端在请求用户个人信息时,会这样设置请求头:

Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c

这里的 Bearer 是一种认证方案(scheme),表示后面跟着的是一个 bearer token。服务器接收到请求后,会自动解析这个 token 并验证其有效性。

实际开发中的常见场景

比如你在做一个 Vue + Spring Boot 的项目,用户登录成功后,后端返回了 JWT。你把 token 存到 localStorage 或 Vuex 里,之后每次发请求,都要手动加上这个 header。

使用 Axios 可以这样统一设置:

axios.interceptors.request.use(config => {
  const token = localStorage.getItem('jwtToken');
  if (token) {
    config.headers.Authorization = `Bearer ${token}`;
  }
  return config;
});

这样就不用每个请求都手动写一遍 header,省事又不容易出错。

为什么不放在其他地方?

有人图方便,把 JWT 放在自定义请求头比如 X-Auth-Token,或者直接塞进 URL 参数。这些做法虽然能跑通,但不推荐。

URL 带 token 容易泄露,比如被浏览器历史、日志记录捕获;而自定义 header 虽然安全些,但不符合标准,可能影响与其他系统的对接,比如网关、中间件、Swagger 文档等都默认认 Authorization: Bearer

后端怎么处理也很关键

前端传对了,后端也要能正确解析。比如在 Express 中可以用 express-jwt 中间件,在 Spring Security 中配置 JWT 过滤器,都能自动从 Authorization 头提取 token 并验证。

只要前后端都遵循同一套规则,整个认证流程就能顺畅运行。