- JWT(JSON Web Token)이란 인증에 필요한 정보들을 암호화시킨 토큰을 의미한다.
- JWT 기반 인증은 쿠키/세션 방식과 유사하게 JWT 토큰(Access Token)을 HTTP 헤더에 실어 서버가 클라이언트를 식별한다.
- 쿠키/세션 인증의 경우 쿠키를 포함한 요청이 외부에 노출되더라도 세션 ID 자체는 유의미한 개인정보를 담고 있지 않지만 해커가 이를 중간에 탈취하여 클라이언트인척 위장할 수 있다는 한계가 존재한다. 그리고 서버에서 세션 저장소를 사용하므로 요청이 많아지면 서버에 부하가 심해지는 단점이 있다.
- 이에 반해 JWT토큰의 경우 Header와 Payload를 가지고 Signature를 생성하므로 데이터 위변조를 막을 수 있기 때문에 보안성이 우수하고, JWT는 토큰에 대한 기본 정보와 전달할 정보 및 토큰이 검증됬음을 증명하는 서명 등 필요한 모든 정보를 자체적으로 지니고 있기 때문에 인증 정보에 대한 별도의 저장소가 필요없다는 장점이 있다. 즉, 클라이언트 인증 정보를 저장하는 세션과 다르게, 서버는 무상태가 됩니다.
'항해99 개발 일지 > [1주차] 풀스택 프로젝트' 카테고리의 다른 글
[07] 미니프로젝트 사용 함수, 새 개념 정리 (0) | 2022.11.20 |
---|---|
[06] JWT토큰 로그인/ 회원가입 만들기 (0) | 2022.11.20 |
[04] CRUD vs REST 무슨 의미인가? (4) | 2022.11.20 |
[03] API (0) | 2022.11.20 |
[02] 트러블슈팅 모음 (1) | 2022.11.17 |