token 是 @ST.aaa.aaa.aaa Java代码解码
时间: 2024-12-30 08:37:24 浏览: 10
在Java中解码JWT(JSON Web Token)通常涉及以下几个步骤:
1. 引入依赖库[^1]:
```java
// 使用java-jwt库
import io.jsonwebtoken.Claims;
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm;
```
2. 实现签名验证与解码:
```java
public static Claims decodeToken(String token) {
try {
// 解析token并校验签名
String[] parts = token.split("\\.");
byte[] headerAndPayload = Base64Url.decode(parts[0] + "." + parts[1]);
// Header 和 Payload 分别解码
JwtParser parser = Jwts.parser();
parser.setSigningKey("your_secret_key"); // 替换为实际的密钥
return parser.parseClaimsJws(headerAndPayload).getBody(); // 返回包含用户信息的Claims对象
} catch (Exception e) {
throw new RuntimeException("Invalid JWT", e);
}
}
```
3. 配置Spring Security以支持无状态会话[^2]:
```yaml
spring:
security:
session:
stateless: true
```
这里设置了`stateless: true`,意味着Spring Security不再维护用户的会话状态。
注意替换`"your_secret_key"`为你自己的JWT秘钥。在`decodeToken`方法中,如果输入的token有效并且签名正确,它将返回包含用户信息的`Claims`对象,可以进一步提取用户名、角色等数据。
阅读全文