ruby-on-rails - 为什么需要将 JWT 作为 Bearer Token header 发送?

标签 ruby-on-rails authentication ruby-on-rails-5 jwt bearer-token

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

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

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

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

我当然可以简单地跟随每个人的例子,但想了解为什么。不记名文档很冗长,很难理解我通过简单地将 JWT 作为请求中的数据的一部分发送得到了什么。

谢谢你。

最佳答案

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

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

附注
请记住,与浏览器自动发送的 Auth cookie 相反,Authorization header 需要由客户端显式设置。

关于ruby-on-rails - 为什么需要将 JWT 作为 Bearer Token header 发送?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50314413/

相关文章:

javascript - 如何从 Rails Controller 设置 morris.js 值

ruby-on-rails - ruby on rails 正则表达式从文本中删除 html 标签及其内容

security - 为什么 OWASP 不建议在客户端和服务器上对密码进行加密?

node.js - 使用 express-session 和 connect-session-sequelize 时 this.sessionModel.find 不是函数

django - 表单不在 Django 中发布

ruby - 切片 vs 提取!轨道 5

ruby-on-rails - Rails 5 中的 OR 子句

ruby-on-rails - 如何使用模型中的属性在 Rails 模型上设置只读?

ruby-on-rails - Rails 应用程序 Controller 中的“protect_from_forgery”

ruby-on-rails - Redis 不断调用 localhost :6379 even though deployed to Heroku