크래프톤정글/프로젝트: 정글 다이어리

크래프톤정글 0주차 2; JWT 방식 로그인과 세션 방식 로그인 이해

jamie-lee 2022. 11. 14. 01:08

JWT의 개념 및 세션 로그인과 비교

출처: https://llshl.tistory.com/26

무엇?

  • JWT (Jason Web Token)
    • json 객체를 사용해 정보를 전달하는 인증 방식
    • 서버에 토큰(내가 나임을 보여줄 수 있는 증표같은 것)을 저장하지 않고, 클라이언트의 쿠키(내 컴퓨터)에 저장하는 것

왜?

  • JWT는 가벼우면서 안정적
  • 세션 방식과 달리 모든 세션을 서버에 저장할 필요 없음

어떻게?

  • 세션 로그인
    1. 클라이언트 → 서버로 로그인 요청
    2. 서버는 로그인 정보 확인 후 세션 생성 & 세션아이디를 보내줌 → 클라이언트의 쿠키, 서버 두 곳에 동시에 세션 아이디 저장
    3. 이후 클라이언트는 세션 아이디를 쿠키에 담아서 함께 요청
    4. 클라이언트가 3에서 보낸 쿠키 속 세션 아이디를 확인하여 서버가 로그인한 사용지인지 확인
  • JWT 로그인
    1. 클라이언트 → 서버로 로그인 요청
    2. 서버는 로그인 정보 확인 후 토큰을 보내줌 → 오로지 클라이언트의 쿠키에만 저장(세션 로그인과 다른 점)
    3. 이후 클라이언트는 토큰을 쿠키에 담아서 함께 요청
    4. 서버는 토큰을 검증하여 유효한 토큰을 가지고 있을시 로그인한 사용자라고 확인