Parcourir la source

添加 jwt 令牌中包含的数据

reghao il y a 3 ans
Parent
commit
80a1f78613

+ 6 - 10
tool/src/main/java/cn/reghao/jutil/tool/jwt/Jwt.java

@@ -25,9 +25,11 @@ public class Jwt {
      */
     public static String create(JwtPayload payload) {
         return Jwts.builder()
+                .claim("loginType", payload.getLoginType())
+                .claim("plat", payload.getPlat())
                 .claim("authorities", payload.getRoles())
                 .setSubject(payload.getUserId())
-                .setExpiration(new Date(payload.getExpireIn()))
+                .setExpiration(new Date(payload.getExpireAt()))
                 .signWith(SignatureAlgorithm.HS256, payload.getSignKey())
                 .compact();
     }
@@ -39,19 +41,13 @@ public class Jwt {
      * @return
      * @date 2021-07-27 下午2:37
      */
-    public static JwtPayload parse(String token) {
-        Claims claims = Jwts.parser().setSigningKey("tnb.cn").parseClaimsJws(token).getBody();
-        String username = claims.getSubject();
-        String roles = (String) claims.get("authorities");
-        Date expiration = claims.getExpiration();
-        return new JwtPayload(username, roles, expiration.getTime(), "tnb.cn");
-    }
-
     public static JwtPayload parse(String token, String signKey) {
         Claims claims = Jwts.parser().setSigningKey(signKey).parseClaimsJws(token).getBody();
         String username = claims.getSubject();
         String roles = (String) claims.get("authorities");
+        Integer loginType = (Integer) claims.get("loginType");
+        Integer plat = (Integer) claims.get("plat");
         Date expiration = claims.getExpiration();
-        return new JwtPayload(username, roles, expiration.getTime(), signKey);
+        return new JwtPayload(loginType, plat, username, roles, expiration.getTime(), signKey);
     }
 }

+ 16 - 11
tool/src/main/java/cn/reghao/jutil/tool/jwt/JwtPayload.java

@@ -5,24 +5,29 @@ package cn.reghao.jutil.tool.jwt;
  * @date 2021-07-26 09:58:45
  */
 public class JwtPayload {
+    private final Integer loginType;
+    private final Integer plat;
     private final String userId;
     private final String roles;
     // 在何时过期
-    private final Long expireIn;
+    private final Long expireAt;
     private final String signKey;
 
-    public JwtPayload(String userId, String roles) {
+    public JwtPayload(Integer loginType, Integer plat, String userId, String roles, long expireAt, String signKey) {
+        this.loginType = loginType;
+        this.plat = plat;
         this.userId = userId;
         this.roles = roles;
-        this.expireIn = System.currentTimeMillis() + 1000*3600*24*7;
-        this.signKey = "tnb.cn";
+        this.expireAt = expireAt;
+        this.signKey = signKey;
     }
 
-    public JwtPayload(String userId, String roles, long expireIn, String signKey) {
-        this.userId = userId;
-        this.roles = roles;
-        this.expireIn = expireIn;
-        this.signKey = signKey;
+    public Integer getLoginType() {
+        return loginType;
+    }
+
+    public Integer getPlat() {
+        return plat;
     }
 
     public String getUserId() {
@@ -33,8 +38,8 @@ public class JwtPayload {
         return roles;
     }
 
-    public Long getExpireIn() {
-        return expireIn;
+    public Long getExpireAt() {
+        return expireAt;
     }
 
     public String getSignKey() {