推荐一个 JWT 的好网站 jwt.io/
支持转换显示过期时间之类的,还支持多种加密算法。
JSON Web Token (JWT) 是一种开放标准 (RFC 7519),它定义了一种紧凑且独立的方式,用于在各方之间以 JSON 对象的形式安全地传输信息。该信息可以被验证和信任,因为它是经过数字签名的。 JWT 可以使用秘密(使用 HMAC 算法)或使用 RSA 或 ECDSA 的公钥 / 私钥对进行签名。
信息交换:JSON Web 令牌是在各方之间安全传输信息的好方法。因为 JWT 可以进行签名(例如,使用公钥 / 私钥对),所以您可以确定发送者就是他们所说的人。此外,由于签名是使用标头和有效负载计算的,因此您还可以验证内容是否未被篡改。
在其紧凑形式中,JSON Web 令牌由用点 ( . ) 分隔的三个部分组成,它们是:
- Header 标头
- Payload 有效载荷
- Signature 签名
每当用户想要访问受保护的路由或资源时,用户代理应该发送 JWT,通常使用承载模式在授权标头中发送。标头的内容应如下所示:
Authorization: Bearer
请注意,对于签名令牌,此信息虽然受到防止篡改的保护,但任何人都可以读取。除非加密,否则请勿将秘密信息放入 JWT 的有效负载或标头元素中。由于缺乏安全性,您也不应该将敏感会话数据存储在浏览器存储中。
在某些情况下,这可以是无状态授权机制。服务器的受保护路由将检查 Authorization 标头中是否存在有效的 JWT,如果存在,则将允许用户访问受保护的资源。如果 JWT 包含必要的数据,则可能会减少查询数据库以执行某些操作的需要,尽管情况可能并非总是如此。