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)); } }