|
@@ -1,12 +1,14 @@
|
|
|
package com.jiayue.ssi.util;
|
|
|
|
|
|
|
|
|
+import cn.hutool.core.date.DateUtil;
|
|
|
import com.jiayue.ssi.entity.SysUser;
|
|
|
import io.jsonwebtoken.*;
|
|
|
import lombok.Data;
|
|
|
import org.springframework.security.core.userdetails.UserDetails;
|
|
|
import org.springframework.stereotype.Component;
|
|
|
|
|
|
+import java.text.SimpleDateFormat;
|
|
|
import java.util.Date;
|
|
|
import java.util.HashMap;
|
|
|
import java.util.Map;
|
|
@@ -23,7 +25,7 @@ public class JwtTokenUtil {
|
|
|
private String secret = "jiayue";
|
|
|
|
|
|
/**
|
|
|
- * 过期时长(毫秒)
|
|
|
+ * 过期时长30分钟(毫秒)
|
|
|
*/
|
|
|
private Long expiration = 1800000L;
|
|
|
|
|
@@ -37,7 +39,7 @@ public class JwtTokenUtil {
|
|
|
*/
|
|
|
private String generateToken(Map<String, Object> claims) {
|
|
|
Date expirationDate = new Date(System.currentTimeMillis() + expiration);
|
|
|
- return Jwts.builder().setClaims(claims).setExpiration(expirationDate).signWith(SignatureAlgorithm.HS512, secret).compact();
|
|
|
+ return Jwts.builder().setClaims(claims).setExpiration(expirationDate).setIssuedAt(new Date(System.currentTimeMillis())).signWith(SignatureAlgorithm.HS512, secret).compact();
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -148,17 +150,22 @@ public class JwtTokenUtil {
|
|
|
System.out.println("jwt body user-id:" + body.get("user_id", String.class));
|
|
|
}
|
|
|
|
|
|
- public static void main(String[] args) {
|
|
|
+ public static void main(String[] args)throws Exception {
|
|
|
JwtTokenUtil jwtTokenUtil = new JwtTokenUtil();
|
|
|
Map<String, Object> claims = new HashMap<String, Object>(16);
|
|
|
claims.put(Claims.SUBJECT, "Test");
|
|
|
- claims.put(Claims.ISSUED_AT, new Date());
|
|
|
+// claims.put(Claims.ISSUED_AT, new Date(System.currentTimeMillis()));
|
|
|
String token=jwtTokenUtil.generateToken(claims);
|
|
|
System.out.println(jwtTokenUtil.getUsernameFromToken(token));
|
|
|
System.out.println(jwtTokenUtil.isTokenExpired(token));
|
|
|
Claims claims1 = jwtTokenUtil.getClaimsFromToken(token);
|
|
|
- System.out.println("过期时间:"+claims1.getExpiration());
|
|
|
- System.out.println("过期时间提前2分钟:"+new Date(claims1.getExpiration().getTime()-1000*60*2));
|
|
|
-
|
|
|
+// System.out.println("过期时间:"+claims1.getExpiration());
|
|
|
+// System.out.println("过期时间提前2分钟:"+new Date(claims1.getExpiration().getTime()-1000*60*2));
|
|
|
+// Thread.sleep(3000L);
|
|
|
+ System.out.println(token);
|
|
|
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
|
+ System.out.println("签发时间:"+ sdf.format(claims1.getIssuedAt()));
|
|
|
+// eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJUZXN0IiwiZXhwIjoxNjc5MzA0MTUyLCJpYXQiOjE2NzkzMDIzNTJ9.Mtv8qJHbjLdnf52VRodqYqp1B2RI1iB_SxzIO92QccwmshQasJOqQL_rhRhgHFcwZRkUmfdwPy06UsWEr3zZ7w
|
|
|
+// eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJUZXN0IiwiZXhwIjoxNjc5MzA0MTY5LCJpYXQiOjE2NzkzMDIzNjl9.x0CiNFezdegvRzmFSQyCzzmNrA-N5g4QaHMZOQubThx6LIOFM8jkoPJgEWc8xUlUipTW5CqFKfxn0z0O0xVvoQ
|
|
|
}
|
|
|
}
|