package com.example.jz.auth;
|
|
import com.auth0.jwt.JWT;
|
import com.auth0.jwt.JWTVerifier;
|
import com.auth0.jwt.algorithms.Algorithm;
|
import com.auth0.jwt.interfaces.Claim;
|
import com.auth0.jwt.interfaces.DecodedJWT;
|
import com.example.jz.modle.entity.User;
|
import org.springframework.stereotype.Component;
|
|
import java.util.Calendar;
|
import java.util.HashMap;
|
|
/**
|
* @author 安瑾然
|
* @data 2022/7/18 - 10:46 AM
|
* @description token工具类
|
*/
|
@Component
|
public class TokenJwtManager {
|
|
// 设置token时间
|
private int tokenEcpiration = 24 * 60 * 60 * 1000; // 1天
|
|
// 编码密钥
|
private String tokenSignKey = "6^wy=$}E";
|
|
// 1、根据用户名生成token
|
public String createToken(String username) {
|
Calendar calendar = Calendar.getInstance();
|
calendar.add(Calendar.SECOND, tokenEcpiration);
|
|
return JWT.create()
|
.withHeader(new HashMap<>())
|
.withClaim("username", username)
|
.withExpiresAt(calendar.getTime())
|
.sign(Algorithm.HMAC256(tokenSignKey));
|
}
|
|
// 2、根据token得到用户名信息
|
public String getUserName(String token) {
|
JWTVerifier build = JWT.require(Algorithm.HMAC256(tokenSignKey)).build();
|
DecodedJWT verify = build.verify(token);
|
Claim username = verify.getClaim("username");
|
return username.asString();
|
}
|
public String createToken(User user) {
|
Calendar calendar = Calendar.getInstance();
|
calendar.add(Calendar.SECOND, tokenEcpiration);
|
|
return JWT.create()
|
.withKeyId(user.getId().toString())
|
.withHeader(new HashMap<>())
|
.withClaim("username", user.getLoginUsername())
|
.withExpiresAt(calendar.getTime())
|
.sign(Algorithm.HMAC256(tokenSignKey));
|
}
|
|
}
|