为什么 JWT 需要作为 Bearer Token 标头发送?

Kob*_*obi 5 authentication ruby-on-rails jwt bearer-token ruby-on-rails-5

我正在将 JWT Auth 添加到旧的 Rails 后端,以实现全新的前端。

根据 HTTP 请求,似乎大多数消息来源都建议我通过 Bearer 标头将令牌发送回服务器。

为什么?通过标头(承载或基本)发送的附加价值是什么?我不能简单地通过 .json 将 JWT 传回服务器并从那里验证令牌。

授权标头给我带来了什么好处,更重要的是,承载授权标头给我带来了什么?

我当然可以简单地遵循每个人的例子,但想了解为什么。承载文档非常冗长,很难理解我通过简单发送 JWT 作为请求中数据的一部分获得了什么。

谢谢。

Pav*_*rno 6

从技术上讲,您可以使用 JTW 在每个请求上发送 json 正文,但这将是非标准行为(例如,GET 请求不应通过规范包含正文)。

更标准的方法是提供AuthorizationHTTP 标头。该Authorization标头并非特定于 JWT,其作用是指定客户端和服务器之间的身份验证方案。另一种方法是将 JWT 包含在 cookie 中,但这将使浏览器的行为变得特定,而 HTTP 标头几乎可以由任何 HTTP 客户端发送。

PS 请记住,与浏览器自动发送的 Auth cookies 相反,Authorization标头需要由客户端显式设置。