温州高端网站定制,搜索关键词排名提升,宿豫区建设局网站,vps 建网站JWT的Token要经过加密才能返回给客户端#xff0c;包括客户端上传的Tokn,后端项目需要验证核 实。于是我们需要一个WT工具类#xff0c;用来加密Token和验证Token的有效性。
一、导入依赖 dependencygroupIdcom.auth0/groupIdartifactIdjav…JWT的Token要经过加密才能返回给客户端包括客户端上传的Tokn,后端项目需要验证核 实。于是我们需要一个WT工具类用来加密Token和验证Token的有效性。
一、导入依赖 dependencygroupIdcom.auth0/groupIdartifactIdjava-jwt/artifactIdversion3.10.3/version/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-configuration-processor/artifactIdoptionaltrue/optional/dependencydependencygroupIdorg.apache.commons/groupIdartifactIdcommons-lang3/artifactIdversion3.11/version/dependencydependencygroupIdorg.apache.httpcomponents/groupIdartifactIdhttpcore/artifactIdversion4.4.13/version/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-aop/artifactId/dependency
二、定义密钥和过期时间
在application文件中加入建议大家把密钥和过期时间定义到Spring Boot配置文件中然后再值注入到javaBean中这样维护起来比较方便。
emos:jwt:#密钥secret: abc123456#令牌过期时间天expire: 5#令牌缓存时间天cache-expire: 10 三、创建jwt工具类
Component
Slf4j
public class JwtUtil {Value(${emos.jwt.secret}) //读取的就是application文件中的数值private String secret;Value(${emos.jwt.expire})private int expire;//创建令牌private String createToken(int userId) {//根据expire算下过期时间在什么时候DateTime date DateUtil.offset(new Date(), DateField.DAY_OF_YEAR, 5);//生成密钥Algorithm algorithm Algorithm.HMAC256(secret);//创建内部类绑定userid密钥和过期时间JWTCreator.Builder builder JWT.create();builder.withClaim(userId, userId);builder.withExpiresAt(date);//生成的令牌String token builder.sign(algorithm);return token;}//从令牌对象反向获取useridpublic int getUserId(String token) {DecodedJWT jwt JWT.decode(token);Integer userId jwt.getClaim(userId).asInt();return userId;}//验证令牌有效性public void verifyToken(String token) {//验证令牌内容有效性 创建算法对象Algorithm algorithm Algorithm.HMAC256(token);//创建验证对象JWTVerifier build JWT.require(algorithm).build();//验证token是否有问题build.verify(token);}
}