jwttoken
时间: 2025-03-18 20:14:25 浏览: 14
JWT Token 的基本概念
JSON Web Token (JWT) 是一种开放标准 (RFC 7519),用于在网络应用环境间安全地传输信息。它是一种紧凑、可自包含的方式,能够传递声明(Claims),这些声明通常被用来在各方之间交换认证和授权信息[^1]。
JWT 结构由三部分组成:Header(头部)、Payload(载荷)以及 Signature(签名)。每一部分都通过 Base64 编码连接在一起形成最终的 Token 字符串:
- Header: 描述令牌的元数据,包括加密算法类型。
- Payload: 存储实际的数据或声明,分为注册声明(Registered Claims)、公共声明(Public Claims)和私有声明(Private Claims)。
- Signature: 使用 Header 和 Payload 数据生成的一个哈希值,确保 Token 不会被篡改。
JWT Token 的实现方式
创建 JWT Token
创建一个 JWT Token 需要指定密钥并定义有效期限等参数。以下是基于 Java Spring Boot 平台的手动实现示例[^3]:
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm;
public class JwtUtil {
private static final String SECRET_KEY = "yourSecretKey";
public static String createToken(String userId, String password) {
return Jwts.builder()
.setSubject(userId)
.claim("password", password)
.signWith(SignatureAlgorithm.HS256, SECRET_KEY.getBytes())
.compact();
}
}
上述代码片段展示了如何利用 Jwts
库构建一个简单的 JWT Token。其中 .setSubject()
方法设置主题字段,.claim()
添加额外的信息作为负载的一部分,最后调用 .signWith()
来签署该 Token。
解析与验证 JWT Token
解析接收到的 Token 可以帮助确认其合法性,并提取存储在其内部的有效信息:
import io.jsonwebtoken.Claims;
import io.jsonwebtoken.ExpiredJwtException;
import io.jsonwebtoken.Jwts;
public class JwtUtil {
public static Claims parseToken(String token) throws ExpiredJwtException{
try {
return Jwts.parser()
.setSigningKey(SECRET_KEY.getBytes()) // 设置相同的密钥进行校验
.parseClaimsJws(token).getBody(); // 返回 payload 中的内容
} catch(ExpiredJwtException e){
throw new RuntimeException("Token 已过期");
}
}
}
此方法尝试解析传入的 Token 如果失败则抛出异常表明 Token 失效或者不合法[^2]。
总结
JWT 提供了一种轻量级机制,在分布式系统架构下特别适合处理用户会话状态管理等问题。无论是前端还是后端都可以轻松集成这种技术方案完成相应的功能需求。
相关推荐


















