【发布时间】:2018-07-23 03:09:37
【问题描述】:
JWT 上的This article 超级清晰,除了最后一部分。
我理解的部分: 1. 编码不同于加密。 2. token 的部分(header base64 编码,payload base64 编码,header+payload 用公钥和指定算法加密的签名)
但我不明白第 5 部分中令牌验证是如何处理的。我也不明白为什么标头和有效负载需要进行 Base64 编码。鉴于它不安全或不加密......编码的部分是什么?
*****编辑****
我的理解是否正确,因为 JWT 包含 encoded 标头和有效负载...应用程序服务器可以只使用其密钥(可能是非对称加密机制中的公钥)进行加密包含的有效负载和标头,如果它到达相同的包含 JWT 签名......那么应用程序服务器知道数据没有被篡改,并且用户确实通过身份验证服务器进行了身份验证。是这样吗?
如果签名不匹配。这意味着什么?
【问题讨论】:
-
你明白了。如果签名不匹配,应用程序不应创建任何会话。除了签名之外,应用程序还应该验证 JWT 的过期时间。每个平台上都有许多库可以为您做到这一点。查看此页面:jwt.io
标签: jwt