JWT 生成工具

# JWT生成工具 #### 引入三方工具包: gradle: ``` implementation("com.auth0:java-jwt:3.8.0")` ``` maven: ``` <dependency> <groupId>com.auth0</groupId> <artifactId>java-jwt</artifactId> <version>3.8.0</version> </dependency> ``` ### [JwtUtil.java]: ```java import com.auth0.jwt.JWT; import com.auth0.jwt.algorithms.Algorithm; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.UUID; public class JwtUtil { private final static String ID = "id"; private final static String APP_ID = "appId"; private final static String USER_ID = "userId"; private final static String USER_NO = "userNo"; private final static String USER_PHONE = "userPhone"; private final static String ACCESS_KEY = "accessKey"; private final static String ACCESS_SECRET = "accessSecret"; private final static String ISSUE_AT = "issueAt"; private final static String EXPIRE_AT = "expireAt"; private final static DateTimeFormatter DATE_TIME_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); public static String genAccessToken(Long userId, String userNo, String phone, String accessKey, String accessSecret, String appId, String appSecret) { Algorithm algorithmHS = Algorithm.HMAC256(appSecret); return JWT.create() .withClaim(ID, UUID.randomUUID().toString()) .withClaim(APP_ID, appId) .withClaim(USER_ID, userId) .withClaim(USER_NO, userNo) .withClaim(USER_PHONE, phone) .withClaim(ACCESS_KEY, accessKey) .withClaim(ACCESS_SECRET, accessSecret) .withClaim(ISSUE_AT, LocalDateTime.now().format(DATE_TIME_FORMATTER)) .withClaim(EXPIRE_AT, LocalDateTime.now().plusHours(2).format(DATE_TIME_FORMATTER)) .sign(algorithmHS); } public static void main(String[] args) { // appId、appSecret 请联系商务获取 String appId = "12345678"; String appSecret = "abcdef"; Long userId = 888888L; System.out.println(genAccessToken(userId, null, null, null, null, appId, appSecret)); } } ```