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中令牌之前的不记名的主要内容,如果未能解决你的问题,请参考以下文章