HuaHengJwtUtils.java
1.3 KB
package com.huaheng.control.management.utils;
import java.util.UUID;
import org.springframework.stereotype.Component;
import com.auth0.jwt.JWT;
import com.auth0.jwt.algorithms.Algorithm;
import com.huaheng.control.management.utils.constant.RSA256Key;
import com.huaheng.control.management.utils.support.RequestAuthentication;
import cn.hutool.core.date.DateUtil;
@Component
public class HuaHengJwtUtils {
public static final String UNKNOWN_USER = "UNKNOWN USER";
/**
* 生成 REQUEST TOKEN
* @author TanYibin
* @createDate 2023年2月15日
* @param requestAuthentication
* @return
*/
public static String sign(RequestAuthentication requestAuthentication) {
Algorithm algorithm = Algorithm.RSA256(new RSA256Key().getPublicKey(), new RSA256Key().getPrivateKey());
return JWT.create().withClaim("operator", requestAuthentication.getOperator()) // 创建Token 操作人
.withAudience(requestAuthentication.getAudience()) // Token 使用方
.withIssuer(requestAuthentication.getIssuer()) // Token 发布者
.withIssuedAt(DateUtil.date()) // 生成签名时间
.withExpiresAt(requestAuthentication.getExpireDateTime()) // 过期时间
.withJWTId(UUID.randomUUID().toString()).sign(algorithm);
}
}