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);
    }

}