我对服务器使用JWT验证用户的方式的理解是,服务器使用自己的密钥对JWT的有效负载部分进行哈希处理,然后将结果与JWT的签名部分进行比较。如果两个匹配,则用户发出的请求有效。
但是,当用户刷新令牌时,我无法找出人们如何生成不同的JWT。对我来说,为了确保在刷新令牌时生成唯一的JWT,需要更改有效负载,例如通过添加到期日期+用户ID。但是,大多数在线资源都没有提到旧的JWT过期时生成新的唯一JWT的过程。我在这里想念什么吗?当旧的JWT过期时,人们是否不生成唯一的JWT,而是仅仅在服务器端延长JWT的生存期?
答案 0 :(得分:2)
我对服务器使用JWT验证用户的方式的理解是,服务器使用自己的密钥对JWT的有效负载部分进行哈希处理,然后将结果与JWT的签名部分进行比较。如果两个匹配,则用户发出的请求有效。
是的。
但是,当用户刷新令牌时,我无法找出人们如何生成不同的JWT。
即使更改很小,签名对于不同的有效载荷也会有所不同。通常包括日期声明,例如exp
和iss
,这些声明使令牌始终不同。
当旧的JWT过期时,人们是否不生成唯一的JWT,而是仅仅在服务器端延长JWT的生存期?
否,因为这将需要维护会话,并且您失去了使用JWT的优势。刷新时,将发出一个新令牌。