【发布时间】:2021-05-04 04:23:02
【问题描述】:
我有一个使用基于 JWT 令牌的授权的应用程序。
我用 jjwt 依赖创建了一个 JWT 令牌。出于好奇,我使用了相同的密钥、相同的有效负载、相同的标头和相同的散列算法,并尝试从 jwt.io 网站创建一个 jwt 令牌。不幸的是,那里生成的令牌签名与我在代码中手动创建的签名完全不同。
谁能告诉我这背后的原因?
【问题讨论】:
-
当您使用程序验证签名时,签名是不同还是无效?对于相同的输入(相同的标头、有效负载、密钥),您将获得相同的输出(签名)。相同意味着相同的字符串。如果只有一点差异,签名将完全不同。空白不计算在内,因为它在 base64 转换之前被剥离。查看生成令牌和两个不同令牌的代码可能会有所帮助。
标签: java spring spring-boot spring-security jwt