1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- package com.huimv.common.utils;
- import cn.hutool.core.date.DateUtil;
- import com.auth0.jwt.JWT;
- import com.auth0.jwt.JWTVerifier;
- import com.auth0.jwt.algorithms.Algorithm;
- import com.auth0.jwt.interfaces.DecodedJWT;
- import java.time.format.DateTimeFormatter;
- import java.util.Date;
- /**
- * @Project : huimv.shiwan
- * @Package : com.example.demo.util
- * @Description : TODO
- * @Author : yuxuexuan
- * @Create : 2021/2/26 0026 9:06
- **/
- public class TokenUtil {
- private static final long EXPIRE_TIME = 24 * 60 * 60 * 1000; //有效时长
- private static final String TOKEN_SECRET = "ben"; // 秘钥
- /**
- * 签名 生成
- *
- * @parm userName
- */
- public static String sign(String userName) {
- String token = null;
- try {
- Date expiresAt = new Date(System.currentTimeMillis() + EXPIRE_TIME);
- token = JWT.create()
- .withIssuer("auth0")
- .withClaim("userName", userName)
- .withExpiresAt(expiresAt)
- //使用HMAC256算法加密
- .sign(Algorithm.HMAC256(TOKEN_SECRET));
- } catch (Exception e) {
- e.printStackTrace();
- }
- return token;
- }
- /**
- * 签名验证
- *
- * @param token
- */
- public static boolean verify(String token) {
- try {
- JWTVerifier verifier = JWT.require(Algorithm.HMAC256(TOKEN_SECRET))
- .withIssuer("auth0").build();
- DecodedJWT jwt = verifier.verify(token);
- System.out.println("TOKEN过期时间:" + DateUtil.format(jwt.getExpiresAt(), "yyyy-MM-dd HH:mm:ss"));
- return true;
- } catch (Exception e) {
- return false;
- }
- }
- }
|