解析token获取用户信息代码java
时间: 2023-09-09 17:12:10 浏览: 252
以下是一个简单的Java代码示例,用于解析JWT token并获取用户信息:
```java
import io.jsonwebtoken.Claims;
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm;
public class JWTUtil {
private static final String SECRET_KEY = "my_secret_key"; // 秘钥
private static final long EXPIRATION_TIME = 864_000_000; // 过期时间,这里设置为10天
// 生成token
public static String generateToken(User user) {
String token = Jwts.builder()
.setSubject(user.getUsername())
.setExpiration(new Date(System.currentTimeMillis() + EXPIRATION_TIME))
.signWith(SignatureAlgorithm.HS512, SECRET_KEY)
.compact();
return token;
}
// 解析token
public static User getUserFromToken(String token) {
Claims claims = Jwts.parser()
.setSigningKey(SECRET_KEY)
.parseClaimsJws(token)
.getBody();
String username = claims.getSubject(); // 获取用户名
User user = new User(username);
return user;
}
}
```
在上面的代码中,`generateToken`方法接受一个`User`对象作为参数,并使用JWT库创建一个JWT token。`getUserFromToken`方法接收一个JWT token,并使用JWT库解析它,然后从claims中获取用户名并返回一个新的`User`对象。
请注意,此示例只是一个简单的演示,您需要根据您的身份验证方案来修改代码。例如,您可能需要添加更多的声明来存储用户的其他信息,如权限、角色等。
阅读全文