tlias管理系统-JWT令牌生成与校验

This commit is contained in:
2025-10-14 14:28:03 +08:00
parent ee1ed1fe90
commit c6cd962b7e
2 changed files with 37 additions and 0 deletions

View File

@@ -69,6 +69,12 @@
<artifactId>jaxb-runtime</artifactId> <artifactId>jaxb-runtime</artifactId>
<version>2.3.3</version> <version>2.3.3</version>
</dependency> </dependency>
<!--令牌JWT依赖-->
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt</artifactId>
<version>0.9.1</version>
</dependency>
</dependencies> </dependencies>
<dependencyManagement> <dependencyManagement>

View File

@@ -1,8 +1,14 @@
package com.inmind; package com.inmind;
import io.jsonwebtoken.Claims;
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.context.SpringBootTest;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import java.util.UUID; import java.util.UUID;
@SpringBootTest @SpringBootTest
@@ -26,4 +32,29 @@ class TliasWebManagementApplicationTests {
System.out.println(ossAccessKeyId); System.out.println(ossAccessKeyId);
} }
//生成令牌
@Test
void testJWT(){
//1.通过工具类Jwts生成jwt令牌设置签名算法和秘钥
Map<String, Object> claims = new HashMap<>();
claims.put("id", "1");
claims.put("name", "wangwu");
String jwt = Jwts.builder().signWith(SignatureAlgorithm.HS256, "inmind")
.setClaims(claims)//设置载荷(自定义数据,用户信息数据)
// .setExpiration(new Date(System.currentTimeMillis() + 60 * 60 * 1000))//设置过期时间有效时间为1小时
.setExpiration(new Date(System.currentTimeMillis()))//设置过期时间有效时间为1小时
.compact();
System.out.println(jwt);
}
//解析令牌
@Test
void testParseJWT(){
Claims claims = Jwts.parser()
.setSigningKey("inmind")//设置签名秘钥解析JWT时最重要的就是输入正确的签名秘钥
.parseClaimsJws("eyJhbGciOiJIUzI1NiJ9.eyJuYW1lIjoid2FuZ3d1IiwiaWQiOiIxIiwiZXhwIjoxNzYwNDIzMDQ1fQ.b1IIm_M-chlu-T4J_HQOvic1GILcw1aWaYX2iHa2PM4")
.getBody();
System.out.println(claims);
}
} }