303 字
2 分钟
JWT快速入门
什么是jwt
Json Web Token,通过数字签名的方式,以json对象为载体,在不同的服务终端之间安全的传输信息
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOjEyMywidXNlcm5hbWUiOiJhbGljZSJ9.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c它由三部分组成:
- Header(头部):说明用的加密算法,例如 HS256
- Payload(载荷):存放用户信息,比如 userId, role, exp
- Signature(签名):用密钥签名,确保数据没被篡改 格式就是: Header.Payload.Signature
使用
假设你登录成功后,服务器生成一个 JWT:
Header:{ "alg": "HS256", "typ": "JWT"}
Payload:{ "userId": 123, "username": "alice", "exp": 1713207687}服务器用密钥生成签名,然后把整个 JWT 返回给前端,前端以后每次请求都带着它:
Authorization: Bearer <你的JWT>服务器验证这个 Token,就知道你是谁,而且不需要查数据库。
验证签名的过程是:
- 用 同样的密钥 和算法(比如 HS256)
- 对 Header.Payload 重新生成一遍签名
- 看是否和原来的
<Signature>一样 如果一样,说明 token 没被篡改 如果不一样,说明 token 被伪造或篡改了
注意
- JWT 存在前端(通常放在 localStorage 或 cookie 中)
- 不能存敏感信息(JWT 是明文可解码的)
- 超时后需重新登录或刷新 token(配合 refresh token)