대부분의 로그인은 JWT(Json web token) 방식을 사용한다.

<로그인 이전>

클라이언트

  1. 사용자의 로그인 요청

  2. 로그인 성공

서버

  1. 사용자 인증을 위한 정보(ID, Password 등)을 서버에서 체크
  2. 유효한 사용자 정보일 경우, 서버에서 secret key를 사용해 JWT 발급 및 클라이언트에 전달

<로그인 이후>

클라이언트

  1. 발급한 JWT를 API 요청할 때 마다 헤더에 넣어서 보냄

서버

  1. API 헤더를 확인해 JWT를 확인
  2. 요청한 API에 대한 응답

JWT의 구조

accessTokenrefreshToken

JWT는 사용자 정보 요청에 대한 인증키이다. 즉, 최초 로그인 이후 발급된 JWT는 이후 개인 정보에 대해 접근할 수 있는 열쇠라는 말이다.

이때, 보안상의 이유로 토큰을 2종류로 나눈다.

개인 정보에 접근할 수 있는 accessToken의 유효 기간이 무한하다면, 토큰 탈취가 발생할 경우 해당 개인 정보는 매우 취약할 수 밖에 없다.