JWT中的Bearer和Token之间有什么区别?

11

我注意到的惯例是在授权字段下将JWT作为头部发送。标准是这样发送令牌:

Authorization: Bearer <token>

Authorization:Bearer [token]

我的问题是为什么我需要加上Bearer,而不是只写:

Authorization:[token]

当我收到第一个请求时,我需要解析每个请求以摆脱Bearer,并在验证JWT时使用。这样做的目的是什么?


它起源于HTTP本身,标准化了Authorization: Basic https://tools.ietf.org/html/rfc2617#section-2,然后由oauth进一步推广,引入了`Authorization: Bearer`(和其他)https://tools.ietf.org/html/rfc6749#section-7.1。因此,它用于指定正在发送的身份验证凭据的类型。 - zerkms
@zerkms 但这是必须的吗?如果我避免使用,会有什么后果吗?我的服务器只需接收令牌并验证其是否为我发行的有效令牌。 - user2924127
1
这不是强制性的。RFC 2616将其定义为“Authorization =”Authorization“:credentials”,因此构建凭据部分取决于您。https://tools.ietf.org/html/rfc2616#section-14.8 - zerkms
谢谢你的回答! - user2924127
1个回答

12

它始于HTTP 1.0标准,该标准添加了 Authorization: Basic

后来一些其它流行的协议(/框架)普及了其他类型的身份验证,例如OAuth的Authorization: Bearer

实际上,HTTP标准(无论是"过时的"还是"更现代的")都将其声明为

Authorization = "Authorization" ":" credentials

没有任何关于如何塑造 credentials 的限制。

因此,只要对您有效,您可以自由决定要放什么。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接