** 헷갈리는 부분만 가져와서 정리함
* Header KEY 값(F12로 봤을 때 Name)
public static final String AUTHORIZATION_HEADER = "Authorization";
* Token 식별자 = > Token임을 구분하기 위해 "Bearer "을 붙여줌
=> 실제로 토큰을 사용할 때는 제외하고 사용
public static final String BEARER_PREFIX = "Bearer ";
* application.properties 에 있는 jwt.secret.key 값을 가져옴
@Value("${jwt.secret.key}")
* 사용할 변수 선언
private String secretKey;
private Key key;
* "Header + Payload + secret 값" 을 HS256 알고리즘으로 암호화
private final SignatureAlgorithm signatureAlgorithm = SignatureAlgorithm.HS256;
public void init() {
byte[] bytes = Base64.getDecoder().decode(secretKey);
key = Keys.hmacShaKeyFor(bytes);
}
public Claims getUserInfoFromToken(String token) {
// 토큰의 위변조, 만료 체크 후 body 의 값을 가져옴
return Jwts.parserBuilder().setSigningKey(key).build().parseClaimsJws(token).getBody();
}