Rest JSON Web签名(JWS)和JSON Web令牌(JWT)之间有什么区别?

Rest JSON Web签名(JWS)和JSON Web令牌(JWT)之间有什么区别?,rest,jwt,restful-authentication,http-token-authentication,Rest,Jwt,Restful Authentication,Http Token Authentication,我一直在用Java编写RESTful服务。这就是我到目前为止所理解的(如果我错了,请纠正我): 令牌授权是使用JSON Web令牌(JWT)完成的,JWT有三个部分:头、负载和秘密(在客户端和服务器之间共享) 我理解这个概念,在阅读JWT的时候,无意中发现了JSON Web签名(JWS) JWS也是一个编码实体,类似于JWT,具有头、有效负载和共享秘密 问题:JWT和JWS这两个概念之间的区别是什么?如果它们在技术上是相似的,那么它们的实现又有什么不同呢 这是我第一次使用基于令牌的auth,所以

我一直在用Java编写RESTful服务。这就是我到目前为止所理解的(如果我错了,请纠正我):

令牌授权是使用JSON Web令牌(JWT)完成的,JWT有三个部分:头、负载和秘密(在客户端和服务器之间共享)

我理解这个概念,在阅读JWT的时候,无意中发现了JSON Web签名(JWS)

JWS也是一个编码实体,类似于JWT,具有头、有效负载和共享秘密

问题:JWT和JWS这两个概念之间的区别是什么?如果它们在技术上是相似的,那么它们的实现又有什么不同呢

这是我第一次使用基于令牌的auth,所以我可能完全误解了这个概念


另外,我在浏览上的示例时了解了JWS。

JWT实际上使用JWS作为其签名,来自:

JSON Web令牌(JWT)是一种紧凑、URL安全的表示 在双方之间转让的债权。JWT中的声明如下: 编码为JavaScript对象表示法(JSON)对象,用作 JSON Web签名(JWS)结构或作为 JSON Web加密(JWE)结构的纯文本,支持 声称进行了数字签名、浸渍和/或加密

因此,JWT是一种JWS结构,其中JSON对象作为有效负载。已经定义了一些可选键(或声明),如
iss
aud
exp


这也意味着其完整性保护不仅限于共享机密,还可以使用公钥/私钥加密。

简单地说,JWT(JSON Web令牌)是一种在JSON对象中表示名称-值对声明的方法。JWT定义了一组在双方之间使用或转让的标准权利要求


另一方面,JWS(jsonweb签名)是一种在双方之间传输JWT负载的机制,可以保证完整性。JWS定义了多种签名方式(如HMAC或数字签名)、有效负载和多种序列化内容的方式,以便通过网络传输

好吧,这是有道理的。那么,如果有效负载包含声明集,那么我的用户信息会去哪里呢?你能给我举个例子吗?请看一下说明书附录a中的例子:声明将包含用户信息。下面是一个代码示例,其中的注释讨论了正在发生的事情