JWT中令牌之前的不记名

Posted

技术标签:

【中文标题】JWT中令牌之前的不记名【英文标题】:Bearer before token in JWT 【发布时间】:2017-08-15 10:13:12 【问题描述】:

我注意到约定是在字段 Authorization 下的标头中发送 JWT。标准是这样发送令牌:

Authorization:Bearer [token]

我的问题是为什么我需要把 Bearer 部分为什么现在只是:

Authorization:[token]

当我收到第一个请求时,我需要在验证我的 jwt 时解析每个请求以摆脱 Bearer。这有什么意义?

【问题讨论】:

它由 HTTP 本身启动,标准化 Authorization: Basic tools.ietf.org/html/rfc2617#section-2,然后由引入 Authorization: Bearer (和其他)tools.ietf.org/html/rfc6749#section-7.1 的 oauth 进一步推广,所以它可以指定什么类型正在发送身份验证凭据。 @zerkms 它是强制性的吗?如果我避免了,会有什么后果吗?我的服务器只是接收令牌并验证它是否是我发出的有效令牌。 这不是强制性的。 RFC 2616 将其定义为 Authorization = "Authorization" ":" credentials,因此取决于您如何构建凭证部分 tools.ietf.org/html/rfc2616#section-14.8 感谢您的回答! 【参考方案1】:

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

然后一些其他流行的协议(/frameworks)普及了其他类型的身份验证,例如OAuth's Authorization: Bearer

实际上,HTTP 标准("obsolete" 和 "more modern")将其声明为

Authorization = "Authorization" ":" credentials

credentials 的形状没有任何限制。

因此,只要它适合您,您就可以自行决定放在那里的内容。

【讨论】:

以上是关于JWT中令牌之前的不记名的主要内容,如果未能解决你的问题,请参考以下文章

在 Auth0 的 /userinfo api 端点中发送的不记名令牌是不是会过期?

如何从 Flask 返回不记名 JWT 令牌?

OLTU 能否提供 JWT 作为访问令牌

Envoy 验证 Jwt 失败

JWT 不记名令牌流

为啥我的 JWT 不记名身份验证在令牌说 5 分钟后将令牌识别为过期?