글 작성자: 망고좋아
반응형

🎯 JWT

  • JSON Web Token
  • 인증을 위한 정보를 특별한 저장소를 이용하지 않고 전자 서명을 이용하여 확인하는 방법

 

📝 JWT의 구성

  • header : 토큰의 타입 (jwt), 데이터 서명방식
  • payload : 전달되는 데이터
  • signature : 헤더와 페이로드의 전자서명
  • JWT는 Web Token, 데이터를 웹에서 사용하기 위한 스펙이므로 웹에서 문제없이 사용할 수 있는 문자열로만 구성된 base64 인코딩을 사용한다.

 

📝 JWT와 보안

  • JWT의 payload는 단순히 정보를 base64 encode → decode시 정보 노출됨 → 민감한 정보는 제외하고 토큰 생성 필수
  • 서버는 JWT를 생성할 때, 비공개키를 이용하여 서명을 한다.
  • payload를 조작할 경우 서명이 일치하지 않기 때문에 인증 실패

 

📝 JWT 작동방식

  1. 사용자 로그인
  2. 서버는 로그인된 유저 정보를 JWT로 생성하여 클라이언트에 전달
  3. 클라이언트는 전달받은 JWT를 이용하여 인증이 필요한 요청에 사용

 

📝 JWT 사용 이유

  • session은 기본적으로 웹 브라우저의 통신 스펙이다.
  • 모바일 앱 등, 웹 브라우저가 아닌 애플리케이션의 경우 이를 활용하기 부적합하다.
  • JWT를 사용하면 어느 클라이언트에서나 동일한 방식의 사용자 인증을 구현 가능하다.

 

📌 참고

반응형