JWT생성하면서 작성한 코드를 정리해야겠다.
1) JWT 생성

우선 getToken을 이용해서 Token발급 관련 메소드이다.
1) key와 value 매개변수를 넘겨서 token을 발급을 시작한다.
2) expTime을 통해서 30분(1000*60*30) 시간 제한을 둔다.
3) secretKey를 통해서 Base64로 디코딩하여 바이트 배열로 변환한다.
※ secretKey는 임의로 지정했다.
4) HMAC-SHA256키로 서명 키를 생성한다.
5) JWT의 경우 header 부분에 데이터type과 암호화 알고리즘이 있어야 한다.
그러므로 headerMap에 넣었다.
6) payload 부분 key값과 value를 넣는다. 참고로 payload부분은 노출되므로 절대로 중요한 정보를 넣으면 안된다.
7) JwtBuilder를 통해서 Jwt를 생성한다
8) jwt구조를 만들었으면 compact 메소드를 호출하여 실제 생성하고 반환한다.
2) JWT를 통한 정보 가져오기

- JWT의 장점이 무엇인가를 생각하면서 개발했다. session을 계속해서 사용하면 서버의 부담을 줄일 수 있다는 것
때문에 사용하는 것이다. 그 말은 jwt를 통해서도 사용자의 정보를 가져올 수 있다는 것이다. payload부분을
가져오는 코드이다.
1) cookie로부터 token을 매개변수로 가져온다.
2) jwt생성과 마찬가지로 Base64로 디코딩하여 바이트 배열로 변환하고 HMAC-SHA256알고리즘으로 서명키 생성한다.
3) 그리고 Jwts.parser()을 통해서 signKey를 입력하고 토큰을 통해서 body값(payload)값을 가져온다.
'Spring_SpringBoot > 코드' 카테고리의 다른 글
| [ Spring Security 6 ] - 4 , UsernamePasswordAuthenticationFilter (0) | 2024.07.07 |
|---|---|
| [ Spring Security 6 ] - 3 , AccessDeniedHandler, AuthenticationEntryPoint (0) | 2024.07.07 |
| [ Spring Security 6 ] - 2 , SecurityConfig (0) | 2024.07.07 |
| [ Spring Security 6 ] - 1 (0) | 2024.07.07 |
| 빈 순환참조, 필드 주입, 생성자 주입 (0) | 2024.06.27 |