Computer Programming/AI

TIL_JWT(JSON Web Token)

JYCoder 2023. 10. 4. 20:56

로그인 인증 방식 중 하나인 JWT가 무엇인지 알아보자.

 

JWT란?

  • JSON Web Token
  • 웹 어플리케이션 간에 정보를 안전하게 전달하기 위한 간단한 토큰 기반의 인증 방식
  • 사용자가 로그인한 후에 발급
  • 토큰은 사용자의 신원을 확인
  • 토큰은 JSON 형식으로 인코딩되어 있고, 사용자의 정보와 함께 서명되어 있어 데이터의 무결성을 보장
  • 사용자의 인증 및 권한 부여를 처리하는 데 매우 유용
  • 웹 서비스와 모바일 앱 등에서 널리 사용

 

JWT의 구조

JWT는 Header, Payload, Signature 이렇게 세 부분으로 구성

 

1. Header(헤더)

  • JWT의 header는 두 가지 정보를 가지고 있음

    1) 이 토큰이 JWT임을 나타내는 "typ" 필드

    2) 어떤 hashing 알고리즘을 사용해 시그니처를 생성하는지를 나타내는 "alg" 필드

 

2. Payload(페이로드)

  • 실제 정보가 담겨 있는 부분
  • 사용자의 정보나 claim이라고 불리는 데이터가 여기에 포함
  • 사용자 식별 정보나 추가 정보 등을 담고 있음
  • 누구나 볼 수 있는 공개 claim과 서버와 클라이언트 간의 비공개 claim으로 나뉨

 

3. Signature(시그니처)

  • 토큰의 유효성을 확인하는 데 사용
  • 헤더와 페이로드, 비밀 키를 조합하여 생성됨
  • 서버는 이 시그니처를 검증하여 토큰이 유효한지 확인 가능

 

 

LIST