jwt和不记名代币之间的区别是什么?

我正在学习一些关于授权的知识,比如基本、摘要、OAuth2.0、jwt和持名令牌。

现在我有一个问题。

您知道jwt在OAuth2.0标准中被用作Access_Token。JWTs出现在RFC 7519,而持名令牌出现在RFC 6750。

例如,持票人:

Authorization: Bearer <token>

我曾经通过AJAX发送令牌到服务器或添加令牌到url的查询字符串。我知道还可以通过将令牌添加到请求标头来发送它。这是否意味着令牌应该添加到授权承载头?

请问JWTs和不记名Token是什么关系?非常感谢。

141670 次浏览

jwt使用两种类型的令牌, 参数Token:访问令牌pass作为参数。 不记名令牌:它是带有“不记名”的传递头。< / p >

请同时阅读以下问题:

OAuth 2中的不记名令牌和token_type是什么?< / >

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

JWT可以用于许多事情,其中包括记名令牌,即您可以向某些服务提供的一条信息,由于您拥有它(您是“记名者”),您可以访问某些东西。

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

简短的回答

jwt是编码验证 索赔的方便方法。

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

背景(故事时间)

几年前,在JWT革命之前,<token>只是一个没有内在含义的字符串,例如2pWS6RQmdZpE0TQ93X。然后在数据库中查找该令牌,其中包含该令牌的索赔。这种方法的缺点是每次使用令牌时都需要DB访问(或缓存)。

jwt 编码验证(通过签名)它们自己的索赔。这允许人们发布短期的无状态jwt(即:自包含,不依赖于任何人)。他们不需要打DB。这减少了DB负载,简化了应用程序架构,因为只有发出jwt的服务才需要担心触及DB/持久化层(你可能遇到过的refresh_token)。