41 lines
1.0 KiB
Java
41 lines
1.0 KiB
Java
package com.greenorange.promotion.utils;
|
|
|
|
import com.auth0.jwt.JWT;
|
|
import com.auth0.jwt.JWTCreator;
|
|
import com.auth0.jwt.algorithms.Algorithm;
|
|
import com.auth0.jwt.interfaces.DecodedJWT;
|
|
|
|
import java.util.Calendar;
|
|
import java.util.Map;
|
|
|
|
public class JWTUtils {
|
|
|
|
/**
|
|
* 生成token header.payload.signature
|
|
*/
|
|
private static final String SECRET = "qingcheng";
|
|
|
|
public static String getToken(Map<String, String> map) {
|
|
|
|
Calendar instance = Calendar.getInstance();
|
|
// 默认7天过期
|
|
instance.add(Calendar.DATE, 7);
|
|
|
|
//创建jwt builder
|
|
JWTCreator.Builder builder = JWT.create();
|
|
|
|
// payload
|
|
map.forEach(builder::withClaim);
|
|
return builder.withExpiresAt(instance.getTime()) //指定令牌过期时间
|
|
.sign(Algorithm.HMAC256(SECRET));
|
|
}
|
|
|
|
/**
|
|
* 验证token 合法性
|
|
*/
|
|
public static DecodedJWT verify(String token) {
|
|
return JWT.require(Algorithm.HMAC256(SECRET)).build().verify(token);
|
|
}
|
|
}
|
|
|