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

Why does JWT need to be sent as a Bearer Token header?

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

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

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

授权 header 对我有什么好处,此外,不记名授权 header 对我有什么好处?

我当然可以简单的仿照大家的例子,但想明白为什么。不记名文档冗长且难以理解我通过简单地发送 JWT 作为请求中数据的一部分获得了什么。

谢谢。

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

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

P.S 请记住,与浏览器自动发送的 Auth cookie 相反,Authorization header 需要由客户端明确设置。