jwt生成Token的工具类。
当做用户登录业务的时候一般需要使用到jwt
token就好比一个人的身份证 当然token也会过期,可以自定义过期时间。不多废话直接上工具类
package com.wwjjbt.sob_blog_system_mp.utils;
import com.wwjjbt.sob_blog_system_mp.pojo.TbUser;
import io.jsonwebtoken.Claims;
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm;
import java.util.Date;
/**
* jwt工具类
*/
public class JwtUtils {
public static final String SUBJECT = "onehee";
public static final long EXPIRE = 1000*60; //过期时间,毫秒,一秒
//秘钥
public static final String APPSECRET = "c60b98a542615d7d26e3724f26356a47";
/**
* 生成jwt
*/
public static String createJsonWebToken(TbUser user){
if(user == null || user.getId() == null || user.getUserName() == null
|| user.getAvatar()==null){
return null;
}
String token = Jwts.builder().setSubject(SUBJECT)
.claim("id",user.getId())
.claim("name",user.getUserName())
.claim("img",user.getAvatar())
.setIssuedAt(new Date())
.setExpiration(new Date(System.currentTimeMillis()+EXPIRE))
.signWith(SignatureAlgorithm.HS256,APPSECRET).compact();
return token;
}
/**
* 校验token
*/
public static Claims checkJWT(String token ){
try{
final Claims claims = Jwts.parser().setSigningKey(APPSECRET).
parseClaimsJws(token).getBody();
return claims;
}catch (Exception e){ }
return null;
}
}
