Oauth 什么';JWTs和不记名代币的区别是什么?

Oauth 什么';JWTs和不记名代币的区别是什么?,oauth,token,jwt,Oauth,Token,Jwt,我正在学习一些关于授权的知识,比如Basic、Digest、OAuth2.0、JWTs和Bear Token 现在我有一个问题 您知道JWTs在OAuth2.0标准中被用作访问令牌。JWTs出现在RFC 7519,承载令牌出现在RFC 6750 例如,持票人: Authorization: Bearer <token> 授权:持票人 我过去常常通过AJAX向服务器发送令牌,或者将令牌添加到url的查询字符串中。我知道令牌也可以通过添加到请求头来发送。这是否意味着应该将令牌添加到授

我正在学习一些关于授权的知识,比如Basic、Digest、OAuth2.0、JWTs和Bear Token

现在我有一个问题

您知道JWTs在OAuth2.0标准中被用作访问令牌。JWTs出现在RFC 7519,承载令牌出现在RFC 6750

例如,持票人:

Authorization: Bearer <token>
授权:持票人
我过去常常通过AJAX向服务器发送令牌,或者将令牌添加到url的查询字符串中。我知道令牌也可以通过添加到请求头来发送。这是否意味着应该将令牌添加到授权承载头中


您能告诉我JWTs和持票人代币之间的关系吗?非常感谢

JWT使用两种类型的令牌, 参数令牌:访问令牌作为参数传递。 持票人令牌:它是带有“持票人”的传入报头

请同时阅读以下问题:


JWT是令牌的编码标准,其中包含可签名和加密的JSON数据有效负载

JWT可以用于许多事情,其中包括承载令牌,即您可以向某个服务提供的一条信息,由于您拥有该信息(您是“承载者”),该信息授予您访问某物的权限

承载令牌可以以不同的方式包含在HTTP请求中,其中一种(可能是首选的)是授权头。但您也可以将其放入请求参数、cookie或请求正文中。这主要是在您和您试图访问的服务器之间。

简短回答 JWT是编码和验证声明的一种方便方法

承载令牌只是用于授权的字符串,可能是任意的

上下文(故事时间) 几年前,在JWT革命之前,
只是一个没有内在意义的字符串,例如2pWS6RQmdZpE0TQ93X。然后在数据库中查找该令牌,该数据库保存该令牌的声明。这种方法的缺点是每次使用令牌时都需要DB访问(或缓存)


JWT编码并验证(通过签名)他们自己的声明。这允许人们发布短期的无状态JWT(阅读:自包含,不依赖任何其他人)。它们不需要点击DB。这减少了数据库负载并简化了应用程序体系结构,因为只有发出JWTs的服务才需要担心触及数据库/持久层(您可能遇到的
refresh\u令牌)。

那么如何解析授权头中的令牌,有一个承载,我必须使用String.slice(),是否有任何中间件来解析它?我正在使用Node.js使用
auth header
包如果您想要最小的解析,请使用String.slice():)谢谢,那么授权中的Mac如何,Mac和承载是否相同?最好在别处回答,例如: