API 授权为啥要在 Authorization 标头里加个 Bearer?

设计 API 授权,或者调用第三方 API 时,经常会接触到:

Authorization : Bearer Tokenxxxxxx
1

有没有疑惑为何不直接写成这样就得了:

Authorization : Tokenxxxxxx
1

这是因为 W3C 的 HTTP 1.0 (opens new window) 规范,Authorization 的格式是:

Authorization: <type> <authorization-parameters>
1

所以 Bearer 是授权的类型,常见的授权类型还有:

授权类型 说明
Basic 用于 http-basic 认证
Bearer 常见于 OAuth 和 JWT 授权
Digest MD5 哈希的 http-digest 认证(已弃用)
HOBA HTTP 消息签名认证(已弃用)
Mutual HTTP 消息签名认证(已弃用)
Negotiate SPNEGO (opens new window) 认证(已弃用)
SCRAM-SHA-1 SCRAM-SHA-1 认证(已弃用)
SCRAM-SHA-256 SCRAM-SHA-256 认证(已弃用)
vapid VAPID 认证
AWS4-HMAC-SHA256 AWS (opens new window) 认证
AWS4-HMAC-SHA256-PAYLOAD AWS (opens new window) 认证
MAC MAC (opens new window) 认证
Netrc Netrc (opens new window) 认证

本文转载自:Summer (opens new window) - API 授权为啥要在 Authorization 标头里加个 Bearer? (opens new window)