package net.jwt.utils;
import io.jsonwebtoken.*;
import net.jwt.domain.User;
import java.util.Date;
public class JwtUtil {
private static final String SUBJECT = "jiajing"; //发布者
private static final Long EXPIRE = 1000 * 60 * 60 * 24 * 7L;//一周后过期
private static final String APPSECRET = "jjjjj";//密钥
/**
* 生成jwt(加密)
* @return 返回token
*/
public static String createJsonWebJwt(User user) {
String token = Jwts.builder().setSubject(SUBJECT)
.claim("id", user.getId()) //
.claim("name", user.getName())
.claim("phone", user.getPhone())
.setIssuedAt(new Date())
.setExpiration(new Date(System.currentTimeMillis() + EXPIRE))
.signWith(SignatureAlgorithm.HS256, APPSECRET)
.compact();
return token;
}
/**
* 校验token(解密)
* @param token
* @return
*/
public static Claims checkJwt(String token) {
try {
Claims claims = Jwts.parser().setSigningKey(APPSECRET)
.parseClaimsJws(token).getBody();
return claims;
} catch (Exception e) {
System.out.println("非法");
}
return null;
}
}
需要引入依赖:
<!-- JWT相关 -->
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt</artifactId>
<version>0.7.0</version>
</dependency>