当前位置: 首页 > 知识库问答 >
问题:

为什么JWT需要作为承载令牌报头发送?

谭仰岳
2023-03-14

我正在为一个全新的前端添加JWT认证到一个遗留的Rails后端。

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

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

Authorization标头给我带来了什么好处,更重要的是,Bearer Authorize标头给了我什么好处?

我当然可以简单地效仿每个人的榜样,但想了解原因。持有者文档很冗长,很难理解我通过简单地将 JWT 作为请求中数据的一部分发送而获得什么。

谢谢你。

共有1个答案

经炜
2023-03-14

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

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

P.S 请记住,与浏览器自动发送的身份验证cookie相反,授权标头需要由客户端显式设置。

 类似资料:
  • 我想从Stormpath帖子中对JWT令牌和CSRF提出疑问,这些令牌和CSRF解释了将JWT存储在localStorage或Cookie中的优缺点。 [...] 如果您使用JS从cookie中读取值,这意味着您不能在cookie上设置Httponly标志,因此现在站点上的任何JS都可以读取它,从而使其与在localStorage中存储内容的安全级别完全相同。 我试图理解为什么他们建议将xsrfT

  • 使用oAuth 2.0,在“授权代码”授权授予中,我首先调用“/授权”,获取代码,然后在对“/令牌”的调用中使用该代码来获取访问令牌。 我的问题:为什么这是流?我想这是出于安全原因,但我想不出来。为什么实现是这样的,而不是在第一次调用(“/authorize”)后立即获取访问令牌? 为什么我们需要这个代码?

  • 我正在尝试调用我已被指示的API: 这需要一个授权头:承载访问令牌。 我有承载访问令牌,并尝试通过邮递员,并通过C#使用WebRequest,没有任何效果。 在Postman中,我将方法设置为GET,将授权设置为No Auth,在Headers选项卡上,我尝试添加一个标题,如下所示: 标头:“授权” 值:“我的令牌” 我也尝试过 标题:“Bearer”值:“mytoken” 也 标头:“授权” 值

  • 根据RFC6750-OAuth 2.0授权框架:承载令牌用法,承载令牌为: 一种具有财产的安全令牌,任何拥有令牌的一方(“持票人”)都可以以任何其他拥有令牌的一方可以使用的任何方式使用该令牌。 对我来说,这个定义是模糊的,我找不到任何规范。 假设我正在实现一个授权提供者,我可以为承载令牌提供任何类型的字符串吗? 它可能是随机字符串吗? 它必须是某些属性的base64编码吗? 是否应该对它进行哈希?

  • 我在laravel上有自己的登录概念。现在我想让它成为第三方登录解决方案。所以我必须了解很多事情。所以请告诉我 为什么我们总是在Get和Post方法的头上传递身份验证令牌? 为什么不在直接url(查询字符串)上? 这有什么优点和缺点?

  • 我的问题是:为什么这是流动?我想是出于安全原因,但我想不通。为什么实现是这样的,而不是在第一次调用(“/authorize”)之后立即获得访问令牌? 我们为什么需要这个代码?