JWT

JWT (JSON Web Token) 是一种用于在网络应用中传递信息的开放标准(RFC 7519)。它以 JSON 格式表示,并经过数字签名或加密以保证信息的完整性和安全性。JWT 主要用于身份验证和授权方面,可以用于安全地传输自包含的信息。
JWT 由三部分组成:头部(Header)、载荷(Payload)和签名(Signature)。
头部(Header)包含描述 JWT 的元数据和加密算法信息,通常由两部分组成:令牌类型(例如 "JWT")和所使用的签名算法(例如 "HS256" 或 "RS256")。
载荷(Payload)是 JWT 的主要内容部分,包含一组声明(claims)作为信息的有效载荷。这些声明可以包括身份数据、权限信息或其他任何需要传递的数据。载荷分为三类声明:注册声明(Registered Claims)、公共声明(Public Claims)和私有声明(Private Claims)。
签名(Signature)是使用头部中指定的算法通过对头部、载荷和秘钥进行签名生成的一串字符。签名通过验证来确保 JWT 的完整性和真实性,并防止篡改。
使用 JWT 的常见场景是身份验证。当用户成功登录后,服务器可以生成一个 JWT 并将其返回给客户端。客户端将 JWT 存储在本地,然后在后续的请求中,在请求头或其他指定位置将 JWT 添加到请求中以进行身份验证。服务器验证 JWT 的签名,并根据其中的声明来确认用户的身份和权限。
通过使用 JWT,可以实现无状态的身份验证系统,因为服务器不需要在后端存储会话信息。每个请求都包含完整的验证信息,服务器可以直接验证 JWT 的有效性,从而降低了服务器的负载并提高了扩展性。

posted @ 2023-07-13 15:27  阿飞藏泪  阅读(48)  评论(0编辑  收藏  举报
1 2 3
4