import io.jsonwebtoken.Claims;
import io.jsonwebtoken.Jws;
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm;
import java.util.Date;
public class TokenManager {
//超时时间
private static long tokenExpration = 60 * 60 * 1000 * 24 * 7;
//密钥
private static String tokenSecret = "yl-20";
/**
* 生成token信息的方法
*
* @param username 用户名
* @param mid 编号
* @return
*/
public static String encodedToken(String username, String mid) {
String token = Jwts.builder()
.setHeaderParam("typ", "jwt")
.setHeaderParam("alg", "HS256")
.setSubject(username)
.setIssuedAt(new Date())
.setIssuer("student")
.claim("username", username)
.claim("mid", mid)
.setExpiration(new Date(System.currentTimeMillis() + tokenExpration))
.signWith(SignatureAlgorithm.HS256, tokenSecret)
.compact();
return token;
}
/**
* 对token方法进行校验,并取得载荷方法
*
* @param token
* @return
*/
public static Claims decodeToken(String token) {
//校验器
Jws<Claims> claimsJws = Jwts.parser().setSigningKey(tokenSecret).parseClaimsJws(token);
return claimsJws.getBody();
}
//测试
public static void main(String[] args) {
String token = encodedToken("yl", "9999");
System.out.println(token);
Claims claims = decodeToken(token);
System.out.println(claims.get("mid"));
}
}
需要的maven依赖
<!--导入jjwt依赖-->
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt</artifactId>
<version>0.9.1</version>
</dependency>