美文网首页
生成JWT Token

生成JWT Token

作者: 起飞的锤子 | 来源:发表于2021-06-10 16:35 被阅读0次
     //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

          本文链接:https://www.haomeiwen.com/subject/uhfpeltx.html