知用网
第二套高阶模板 · 更大气的阅读体验

登录认证请求头怎么传 使用技巧与常见问题解析

发布时间:2025-12-27 06:51:22 阅读:119 次

常见的登录认证方式

在做前后端交互时,登录认证是绕不开的一环。很多接口要求携带认证信息才能访问,而这些信息通常通过请求头(Header)传递。最常见的就是 Token 认证,比如 JWT(JSON Web Token)。用户登录后,服务器返回一个 Token,之后每次请求都要把这个 Token 放在请求头里,告诉后端“我是谁”。

举个例子,你在手机上用某个 App 查订单,点进去的时候不需要重复登录,就是因为每次请求都自动带了认证信息。这个过程背后,其实就是请求头在默默工作。

如何在请求头中传递认证信息

最常用的方式是使用 Authorization 请求头。格式通常是:

Authorization: Bearer <token>

这里的 Bearer 是认证方案的类型,后面跟着实际的 Token 字符串。注意中间有个空格。

比如你拿到的 Token 是 eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...,那请求头就应该写成:

Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...

前端代码示例

如果你用的是 JavaScript 的 fetch,可以这样写:

fetch('/api/user', {
method: 'GET',
headers: {
'Authorization': 'Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...',
'Content-Type': 'application/json'
}
})
.then(response => response.json())
.then(data => console.log(data));

如果是用 Axios,更简单:

axios.get('/api/user', {
headers: {
'Authorization': 'Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...'
}
});

后端如何接收

后端框架一般都会提供方法读取请求头。比如 Node.js 的 Express 可以这样拿:

const token = req.headers['authorization']?.split(' ')[1];

Python 的 Flask 也类似:

token = request.headers.get('Authorization')
if token and token.startswith('Bearer '):
real_token = token[7:]

其他认证方式

除了 Bearer Token,有些系统用 API Key,可能放在 X-API-Key 头里:

X-API-Key: your-api-key-here

或者用 Basic 认证,把用户名和密码拼成 username:password,再用 Base64 编码:

Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=

这种适合内部接口或测试环境,生产环境建议还是用 Token 更安全。

调试小技巧

浏览器开发者工具的 Network 面板能直接看到请求头有没有带上。如果接口返回 401,第一反应应该是检查 Authorization 头有没有拼错,Token 有没有过期。有时候复制 Token 多了个空格,请求就失败了,这种问题看着小,排查起来挺费时间。