需要的依赖:
<dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.75</version> </dependency> <dependency> <groupId>io.jsonwebtoken</groupId> <artifactId>jjwt</artifactId> <version>0.9.1</version> </dependency>
工具类:
/** * JWT 工具类 * 解决token签发 与 token认证的问题。 */ public class JWTUtil { /** * token签发的有效期 */ public static final int TOKEN_EXPIRE=1000*60*30; /** * token加密算法的盐 */ public static final String TOKEN_KEY="xxxxxx"; /** * 生成一个token */ public static String newToken(UserVO userVO){ //产生token String token= Jwts.builder() .setSubject(userVO.getNickname()) .setIssuedAt(new Date()) .setExpiration(new Date(System.currentTimeMillis()+TOKEN_EXPIRE)) .claim("user", JSONObject.toJSONString(userVO)) .signWith(SignatureAlgorithm.HS256,TOKEN_KEY.getBytes()) .compact(); return token; } /** * 解析token */ public static UserVO checkToken(String token){ Claims body=null; try { body = Jwts.parser().setSigningKey(TOKEN_KEY.getBytes()) .parseClaimsJws(token).getBody(); }catch(Exception e){ return null; } Object userJSONString=body.get("user"); UserVO user=JSONObject.parseObject((String)userJSONString,UserVO.class); return user; } }