生成JWT Token

 //JWT 默认过期时间,3600L,单位秒
/**
 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             // 过期时间,单位:秒
12             Long expireSecond;
13             // 默认过期时间为1小时 3600L 单位秒
14             if (expireDuration == null) {
15                 expireSecond = "3600L";
16             } else {
17                 expireSecond = expireDuration.getSeconds();
18             }
19             Date expireDate = DateUtils.addSeconds(new Date(), expireSecond.intValue());
20             // 生成token
21             Algorithm algorithm = Algorithm.HMAC256(salt);
22             String token = JWT.create()
23                     .withClaim(CommonConstant.JWT_USERNAME, username)
24                     // jwt唯一id
25                     .withJWTId(UUIDUtil.getUuid())
26                     // 签发人
27                     .withIssuer("")
28                     // 主题
29                     .withSubject("")
30                     // 签发的目标
31                     .withAudience("")
32                    // 签名时间
33                     .withIssuedAt(new Date())
34                     // token过期时间
35                     .withExpiresAt(expireDate)
36                     // 签名
37                     .sign(algorithm);
38             return token;
39         } catch (Exception e) {
40             log.error("generateToken exception", e);
41         }
42         return null;
43     }

你可能感兴趣的:(生成JWT Token)