Chat/src/main/java/com/example/chat/jwt/JWTUtil.java

34 lines
1.3 KiB
Java
Raw Normal View History

2023-11-14 18:19:47 +08:00
package com.example.chat.jwt;
import com.auth0.jwt.JWT;
import com.auth0.jwt.JWTVerifier;
import com.auth0.jwt.algorithms.Algorithm;
import com.auth0.jwt.interfaces.DecodedJWT;
import org.springframework.stereotype.Component;
public class JWTUtil {
private static final String tokenPassword = "uziCjb";
public static String sign(String username) {//用用户名作为被加密的对象
String token;
token = JWT.create()//生成jwt令牌加密过程
.withIssuer("llh")
.withClaim("username", username)
.sign(Algorithm.HMAC256(tokenPassword));
return token;//返回加密后的token
}
public static String verify(String token){
JWTVerifier jwtVerifier=JWT.require(Algorithm.HMAC256(tokenPassword)).withIssuer("llh").build();//构建一个jwt解码器
DecodedJWT jwtToken=jwtVerifier.verify(token);//解码
if(token.isEmpty()){//若token为空则返回false拦截
return null;
}
else {
System.out.println("认证通过:");
System.out.println("issuer: " + jwtToken.getIssuer());
System.out.println("username: " + jwtToken.getClaim("username").asString());
return jwtToken.getClaim("username").asString();
}
}
}