JWT

JWT의 개념

JWT는 "JSON Web Token"의 약자로, 웹 기반의 토큰 기반 인증 및 권한 부여 시스템을 구현하는 데 사용되는 오픈 표준입니다. JWT는 정보를 안전하게 전달하기 위한 간단한 방법을 제공하며, 주로 웹 및 모바일 애플리케이션에서 사용되며 API 요청의 인증 및 권한 부여에 활용됩니다.

JWT의 구성

JWT는 세 부분으로 구성되어 있습니다:

1. Header: 토큰의 유형 및 해싱 알고리즘 정보가 포함되어 있습니다.
2. Payload: 실제 정보가 JSON 형식으로 포함되어 있으며, 클레임(claim)이라는 속성들로 이루어져 있습니다. 클레임은 토큰의 발급자, 유효 기간, 사용자 ID 등을 포함할 수 있습니다.
3. Signature: Header와 Payload를 기반으로 생성되며, 토큰의 변조 여부를 확인하는데 사용됩니다. 서버는 이 시그니처를 사용하여 토큰의 유효성을 검증합니다.

JWT의 작동 방식

JWT의 작동 방식은 다음과 같습니다:

  1. 사용자가 로그인하면 서버는 JWT를 생성합니다. 이 JWT에는 사용자 정보 및 해당 사용자의 권한 정보가 포함될 수 있습니다.
  2. 서버는 생성한 JWT를 클라이언트에게 반환합니다.
  3. 클라이언트는 이후 API 요청을 할 때마다 JWT를 함께 전달합니다.
  4. 서버는 JWT의 시그니처를 확인하여 토큰의 유효성을 검증하고, 클라이언트의 권한에 따라 요청을 처리합니다.

JWT의 장점은 간단하고 경량적인 구조로 정보를 전달할 수 있다는 점입니다. 또한 토큰 자체에 필요한 정보가 포함되어 있으므로, 별도의 세션 상태를 유지할 필요가 없어집니다. 그러나 JWT를 사용할 때에는 보안에 주의해야 하며, 토큰의 유효 기간 및 안전한 키 관리 등을 신중하게 다뤄야 합니다.

profile
지치지 않는 백엔드 개발자 김성주입니다 :)

0개의 댓글