JWT & Session

Clare Lee·2021년 7월 12일
0

네트워크

목록 보기
1/1
post-thumbnail

웹페이지 로그인과 관련해서 한 번 로그인하고 나서 로그인 상태를 계속 유지할 필요가 있다. 로그인 한 번 하고 한 페이지 보고 다시 또 로그인해야 하면 말이 안 되지 않겠는가.

기존에 로그인할 때 세션이 쓰였는데, 세션이란 무엇일까?
방문자가 웹 서버에 접속해 있는 상태라고 이해하면 될 것 같다. 이를 위해 서버의 메모리를 사용한다.

Header
Payload
Signature

반면 JSON Web Token의 경우 메모리를 사용하지 않고 header, payload 그리고 signature으로 구성되어 있어 payload에 정보가 저장되어 있고 header에 암호화 방식이 저장되어 있어 payload를 암호로 처리했을 때 signature이 나와야 한다.

JWT의 경우 stateless하기 때문에(정보를 저장하지 않기 때문에) 여러 기기에서 접속했을 때 다른 기기를 자동으로 로그아웃 시킬 수 없다.
JWT의 stateless한 단점을 보완하기 위해 access token과 refresh token을 쓰기도 한다.

아직은 JWT에 대해 정확히 파악 못해서 나중에 이 글을 보강해야 할 것 같다.

*참고 사이트: 얄코라디오 JWT

추가 정보:
Session과 Load Balancer의 문제는 session storage(DB)를 따로 둬서 관리한다.
Authentication이 아니라 Authorization이다.
정보를 저장하지 않기 때문에 여러 서버에서 같은 JWT를 쓸 수 있다.

profile
2년차 임베디드 SW 개발자

0개의 댓글