1. 程式人生 > 實用技巧 >如何生成token

如何生成token

主要程式碼

1         //JWT 預設過期時間,3600L,單位秒
2         Long expireSecond = 3600L;
3         //鹽值 
4         String newSalt = 6665         String token = JwtUtil.generateToken(user.getUsername(), newSalt,     
6         Duration.ofSeconds(expireSecond));        

JwtUtil.generateToken方法

 1  /**
 2      * 生成JWT Token
3 * 4 * @param username 使用者名稱 5 * @param salt 鹽值 6 * @param expireDuration 過期時間和單位 7 * @return token 8 */ 9 public static String generateToken(String username, String salt, Duration expireDuration) { 10 try { 11 if (StringUtils.isBlank(username)) {
12 log.error("username不能為空"); 13 return null; 14 } 15 log.debug("username:{}", username); 16 17 // 如果鹽值為空,則使用預設值:666666 18 if (StringUtils.isBlank(salt)) { 19 salt = "666666; 20 } 21 22 //
過期時間,單位:秒 23 Long expireSecond; 24 // 預設過期時間為1小時 3600L 單位秒 25 if (expireDuration == null) { 26 expireSecond = "3600L"; 27 } else { 28 expireSecond = expireDuration.getSeconds(); 29 } 30 Date expireDate = DateUtils.addSeconds(new Date(), expireSecond.intValue()); 31 32 // 生成token 33 Algorithm algorithm = Algorithm.HMAC256(salt); 34 String token = JWT.create() 35 .withClaim(CommonConstant.JWT_USERNAME, username) 36 // jwt唯一id 37 .withJWTId(UUIDUtil.getUuid()) 38 // 簽發人 39 .withIssuer("") 40 // 主題 41 .withSubject("") 42 // 簽發的目標 43 .withAudience("") 44 // 簽名時間 45 .withIssuedAt(new Date()) 46 // token過期時間 47 .withExpiresAt(expireDate) 48 // 簽名 49 .sign(algorithm); 50 return token; 51 } catch (Exception e) { 52 log.error("generateToken exception", e); 53 } 54 return null; 55 }