상세 컨텐츠

본문 제목

JWT(Json Wep Token)에 대해

공부/기타

by dofury 2023. 3. 11. 19:15

본문

728x90

대학교 캡스톤 디자인 프로젝트를 하게 되었는데,

JWT를 사용해 앱과 서버간의 사용자 인증(로그인)을 하게되어 공부하게 되었다.

 


 

JWT 설명

- JWT는 유저를 인증하고 식별하기 위한 토큰기반 인증이다.

 

JWT 특징

- 토큰은 서버가 아닌 클라이언트에 저장 (서버부담 DOWN)

- 토큰 자체에 사용자 권한 정보나 서비스를 사용하기위한 정보가 포함 -> 데이터가 많아질시 토큰이 커짐

- 비대칭 암호화 방식

- 무상태인 환경에서 데이터 통신이 가능

 

JWT 구성요소

- Header (토큰 타입, 서명 생성 알고리즘 저장)

- Payload (사용자나 토큰에 대한 속성) - 누구나 볼수 있기에 민감한 정보는 담지 않음

- Signature (서명) - 비대칭 암호화

 

JWT 진행 순서

1. 앱 사용자가 로그인을 통해 인증

2. 서버에서 서명된 JWT를 생성하여 앱에 응답 주기

3. 앱에서 서버에 데이터를 추가로 요구할 떄 JWT를 HTTP Header에 첨부

4. 서버에서 앱으로부터온 JWT 검증

 

JWT의 장점

- 별도의 인증 저장소가 필요하지 않음.

- 앱의 상태를 서버에 저장하지 않아도 됨.

- 데이터에 대한 보완성 증가

 

JWT의 단점

- 전달량이 많아, 네트워크 부하가 생길 수 있음.

- Payload 에는 암호화가 되어있지 않아 민감한 정보 저장 불가.

- 토큰이 탈취당할시 만료가 될 떄까지 기다려야함. (중요)

 

 

 

728x90

'공부 > 기타' 카테고리의 다른 글

단위 테스트에 대한 공부  (0) 2023.03.05
구글 Firebase에 대한 고찰  (0) 2023.02.26

관련글 더보기

댓글 영역