掘金文章归档 · 第 83 篇 HTTP · 鉴权

Authorization 自定义请求头 为啥需要加 Bearer?

Authorization: Bearer <token> —— W3C 规范里的授权类型标记

原文作者:随意_(掘金) | juejin.cn/post/7403190818628845595 | 标签:前端 / JavaScript / Vue.js

0背景

我们做鉴权登录,不论是 OAuth 还是 JWT,经常需要设置自定义请求头 Authorization。往往不是简单的传入对应的 token 即可,往往需要增加一个字符串 Bearer,示例如下:

{
  headers: {
    Authorization: 'Bearer ' + token
  }
}

其实,这仅仅是一个规范。

1规范解析

Authorization 自定义请求头需要加 Bearer,这是因为 Bearer 是 W3C 的 HTTP 1.0 规范中定义的授权类型之一,常见于 OAuth 和 JWT 授权。

在 HTTP 请求中,Authorization 请求头用于验证用户身份,其格式为:

📌 Authorization: <type> <authorization-parameters>

其中,<type> 指的是认证的方式,而 Bearer 是这种格式中的一种类型,用于表示授权的类型。除了 Bearer,还有其他类型的认证方式,如 Basic(用于 HTTP 基本认证)和 Digest(已弃用的 MD5 哈希 HTTP 基本认证)等。在 OAuth 和 JWT 授权中,Bearer 类型被广泛使用。因此,在 Authorization 请求头中添加 Bearer 是为了遵循这一规范,确保请求能够正确地被服务器识别和处理。

授权类型说明
BearerOAuth / JWT 常用,持有令牌即可访问
BasicHTTP 基本认证(用户名:密码 Base64)
DigestMD5 摘要认证(已弃用)

简而言之,通过在 Authorization 请求头前加上 Bearer,可以确保请求的授权信息被正确地识别和处理,这是遵循 W3C HTTP 1.0 规范的结果。