| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- package common.utils;
- import com.video.model.pojo.SystemUser;
- import io.jsonwebtoken.Claims;
- import io.jsonwebtoken.Jwts;
- import io.jsonwebtoken.SignatureAlgorithm;
- import lombok.extern.slf4j.Slf4j;
- import java.util.Date;
- /**
- * jwt 工具
- **/
- @Slf4j
- public class JWTUtil {
- /**
- * 主题
- */
- private static final String SUBJECT = "chuanghai-ihotel";
- /**
- * 加密密钥
- */
- private static final String SECRET = "chuanghai.ihotel";
- /**
- * 令牌前缀
- */
- private static final String TOKEN_PREFIX = "ihotel";
- /**
- * token过期时间,7天
- */
- private static final long EXPIRED = 1000 * 60 * 60 * 24 * 7;
- /**
- * 获取过期时间
- * @return
- */
- public static long getExpired() {
- return EXPIRED;
- }
- /**
- * 生成token
- *
- * @param loginUser
- * @return
- */
- public static String geneJsonWebToken(SystemUser loginUser) {
- if (loginUser == null) {
- throw new NullPointerException("对象为空");
- }
- String adminIdStr = "";
- if (loginUser.getId() != null) {
- adminIdStr = loginUser.getId().toString();
- }
- String token = Jwts.builder().setSubject(SUBJECT)
- //配置payload
- .claim("phone", loginUser.getPhoneNumber())
- .claim("role_id", loginUser.getRoleId())
- .claim("admin_id", adminIdStr)
- .setIssuedAt(new Date())
- .setExpiration(new Date(CommonUtil.getCurrentTimestamp() + EXPIRED))
- .signWith(SignatureAlgorithm.HS256, SECRET).compact();
- token = TOKEN_PREFIX + token;
- return token;
- }
- /**
- * 解密jwt
- * @param token
- * @return
- */
- public static Claims checkJWT(String token) {
- try {
- final Claims claims = Jwts.parser().setSigningKey(SECRET).parseClaimsJws(token.replace(TOKEN_PREFIX, "")).getBody();
- return claims;
- } catch (Exception e) {
- return null;
- }
- }
- public static void main(String[] args) {
- // System.out.println(geneJsonWebToken(LoginUserDTO.builder().adminId(1L).cardNumber("123456").identityType("1").build()));
- }
- }
|