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