BackEnd/Spring

JWT(JSON WEB TOKEN) 인증 과정

yusung_ 2023. 3. 8. 14:19

📌 JWT를 사용한 인증 과정

  1. 사용자 로그인
    • 사용자는 로그인 페이지에서 아이디와 비밀번호를 입력합니다.
  2. 서버에서 JWT 발급
    • 서버는 입력받은 아이디와 비밀번호를 검증합니다.
    • 검증이 성공하면, 서버는 JWT를 발급하고 클라이언트에 전달합니다.
  3. 클라이언트에서 JWT 저장
    • 클라이언트는 받은 JWT를 저장합니다.
    • 이때, 일반적으로 쿠키나 로컬 스토리지에 저장됩니다.
  4. 클라이언트에서 JWT 전송
    • 클라이언트는 전송할 요청에 JWT를 추가합니다.
    • 이때, 일반적으로 HTTP 헤더의 Authorization 필드에 "Bearer {JWT}" 형식으로 추가됩니다.
  5. 서버에서 JWT 검증
    • 서버는 요청에 포함된 JWT를 검증합니다.
    • 검증이 실패하면, 요청 처리를 거부하고 에러를 반환합니다.
    • 검증이 성공하면, 서버는 해당 요청을 처리합니다.
  6. 인가 확인
    • 서버에서 요청 처리를 위해 필요한 권한이 있는지 확인합니다.
    • 권한이 없는 경우, 요청 처리를 거부하고 에러를 반환합니다.
    • 권한이 있는 경우, 서버는 해당 요청을 처리합니다.
  7. JWT 갱신
    • JWT는 일정 기간이 지나면 만료됩니다.
    • 만료되기 전에, 클라이언트는 새로운 JWT를 발급받아 저장합니다.
    • 이때, 이전 JWT와 새로운 JWT가 서로 다른 것을 확인하고, 새로운 JWT를 사용해 인증을 진행합니다.
  8. 로그아웃
    • 클라이언트에서 로그아웃을 요청하면, 저장된 JWT를 삭제합니다.