JWT(JSON Web Token)是一种基于 JSON 格式的轻量级令牌(token)协议,它被广泛应用于网络应用程序的身份验证和授权。相较于传统的 session-based 认证机制,JWT 具有更好的扩展性和互操作性,同时也更安全可靠。
JWT 的结构由三部分组成:头部(header)、载荷(payload)和签名(signature)。头部和载荷使用 Base64 编码后,通过点号(.)连接成为一个字符串,这个字符串就是 JWT 的第一部分。签名由头部、载荷和一个密钥(secret)使用特定的算法计算得出,用于验证 JWT 的合法性。
头部部分包含了 JWT 的元数据信息,例如使用的加密算法、类型等等。载荷部分则是 JWT 所要传递的信息,可以是任何 JSON 格式的数据。常见的 payload 包含用户 ID、角色、过期时间等等。签名部分则是为了防止 JWT 被篡改,使用了一个密钥对头部和载荷进行签名生成的字符串。
JWT 的优点在于它可以跨越多个域名和多个平台,使得身份验证和授权变得更加简单和安全。在使用 JWT 进行身份验证时,服务端在用户登录成功后,将用户 ID、用户名等信息加密成为 JWT 并发送给客户端,客户端在接下来的每个请求中都将 JWT 作为认证信息发送给服务端。服务端在接收到请求后,通过验证 J