jwt 令牌实际上是如何创建的?

时间:2021-01-30 12:53:03

标签: java spring spring-boot spring-security jwt

我有一个使用基于 JWT 令牌的授权的应用程序。所以我在玩它。我会告诉我遵循的步骤。

  1. 使用 postman 调用 API 获取用户的 JWT 令牌
  2. 复制该 JWT 令牌并将其粘贴到 jwt.io 网站
  3. 我得到了一些负载值和标头
  4. 尝试使用我在第 3 步中获得的确切标头和有效负载从网站创建新的 JWT 令牌
  5. 使用与我的服务器用于散列 JWT 令牌相同的密钥。
  6. 最后,我在新创建的 JWT 令牌中获得了不同的签名。

那是什么原因呢?我使用了相同的有效负载、相同的标头和相同的密钥,但仍然得到不同的签名 为什么?请帮帮我。

1 个答案:

答案 0 :(得分:1)

JWT 的签名是哈希函数的输出。此函数的输出可能取决于您提到的字段other。例如,您的 JWT 可能有一个发布时间 (iat) 字段,对于您正在检查的两个令牌,该字段可能不同。如果是这样,那么来自两个令牌的校验和也不相同。

我的一般建议是验证您的 JWT 中的所有字段是否确实相同。