You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

29 lines
922 B

1 month ago
package com.project.ding.utils;
import io.jsonwebtoken.Claims;
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm;
import io.jsonwebtoken.security.Keys;
import org.springframework.stereotype.Component;
import java.security.Key;
import java.util.Date;
import java.util.List;
@Component
public class JwtUtils {
private static final Key KEY = Keys.secretKeyFor(SignatureAlgorithm.HS256);
private static final long EXPIRE = 86400000; // 24小时
public String createToken(String userId, List<String> roles) {
return Jwts.builder()
.setSubject(userId)
.claim("roles", roles)
.setExpiration(new Date(System.currentTimeMillis() + EXPIRE))
.signWith(KEY).compact();
}
1 month ago
public Claims parseToken(String token) {
return Jwts.parserBuilder().setSigningKey(KEY).build().parseClaimsJws(token).getBody();
}
}