TokenParsingResult.java
package qwerty.chaekit.global.jwt;
import io.jsonwebtoken.Claims;
public record TokenParsingResult(
TokenStatus status,
Long memberId,
Long userId,
Long publisherId,
String email,
String role
) {
public static TokenParsingResult of(TokenStatus status, Claims claims) {
return new TokenParsingResult(status,
claims.get("memberId", Long.class),
claims.get("userId", Long.class),
claims.get("publisherId", Long.class),
claims.get("email", String.class),
claims.get("role", String.class));
}
public static TokenParsingResult of(TokenStatus status) {
return new TokenParsingResult(status, null, null, null, null, null);
}
public static TokenParsingResult of(TokenStatus status, Long memberId, Long userId, Long publisherId, String email, String role) {
return new TokenParsingResult(status, memberId, userId, publisherId, email, role);
}
public String getStatus() {
return this.status.name();
}
public boolean isExpired() {
return this.status == TokenStatus.EXPIRED;
}
public boolean isValid() {
return this.status == TokenStatus.VALID;
}
}