랄라
JWT(Json Web Token) 본문
웹 애플리케이션에서 사용자의 인증 정보를 안전하게 저장하고 전달하는 데 사용되는 Web Token
JSON 포맷을 이용하여 사용자에 대한 속성을 저장하고, 클라이언트(브라우저)에서 인증정보를 관리
*ex) 회원이 로그인을 진행한경우 서버에서 JWT 생성 -> 클라이언트에 JWT 전달
JWT의 구조
헤더.페이로드.서명 형식 (*Base64로 인코딩되어있으며, 서명의 경우 비밀키로 생성되어있음.)
Header(헤더) : 토큰의 타입과 알고리즘 정보를 담고있음 (ex. HS256)
Payload(페이로드) : 실제 데이터를 담고있는 부분 이메일이나 사용자의 id를 담는다.
(*보안이 필요한 데이터는 담기지않음)
Signature(서명) : 헤더와 페이로드를 비밀키로 서명해둔값, 토큰을 조작했는지에 대한 여부를 확인가능.
JWT의 장단점
장점
- 서버에서 상태를 저장하지않기때문에 세션 메모리 사용이 줄어 서버부하가 적다.
- 동일한 Secret Key를 사용하기때문에 서버가 여러개로 구성되어있어도 인증/인가 처리를 간편하게 진행할 수 있다.
단점
- JWT에 담기는 내용이(Payload) 증가할수록 네트워크 비용또한 증가
-> 모바일 환경이나 낮은 대역폭을 가진경우 더욱 문제
- Secret key 유출 시 JWT 조작가능
-> 주기적인 키 교체가 필요.
- 서버에서 토큰을 관리하지않기때문에 만료된 토큰을 강제로 처리하거나 삭제할 수 없다.
-> 토큰만료시간 설정이나, 토큰 갱신 등의 방법이 있지만, 클라이언트 측에서 만료된 토큰을 삭제하거나
새로운 토큰을 받아오는 과정이 필요함.
'내일배움캠프 > 공부정리' 카테고리의 다른 글
| Validation (0) | 2025.02.05 |
|---|---|
| Spring Security와 주요기능 (0) | 2025.02.05 |
| Cookie와 Session (0) | 2025.02.04 |
| SpringBoot JPA, Spring Data JPA (0) | 2025.02.04 |
| Entity 와 Persistence Context (영속성 컨텍스트) (1) | 2025.02.04 |