본문 바로가기
Web 개발/FAST API (인프런 강의 내용)

5 기능 고도화 - 로그인 / 유저 인증 - JWT

by yororing 2024. 11. 16.

앞 단계 참조 링크:

00 개요

  • JWT 토큰이란 무엇이며 이를 어떻게 사용하여 로그인 및 사용자 인증하는지 알아보기 

 

01 로그인 / 인증 - JWT

1. JWT란?

  • JSON Web Token
  • 사용자 인증에 사용되는 JSON 형식의 웹 토큰

2. 장점

  • 토큰에 사용자 정보를 담아 별도의 데이터 조회 없이도 인증 처리 가능
  • 토큰 변조를 검증할 수 있기 때문에 내장된 데이터를 신뢰할 수 있음
  • 토큰을 만료 (expire) 시킬 수 있음
  • 설명
    • 일반적으로 사용자 인증을 처리하기 위해서는 별도의 저장소를 통해 Session 데이터를 관리해야 하지만 JWT를 활용하면 별도의 데이터 조회 없이도 토큰에 내장된 데이터를 통해 사용자를 식별할 수 있음
    • JWT는 signing?을 통해 위변조를 검증할 수 있기 때문에 내장된 데이터를 신뢰할 수 있음
    • JWT의 payload에 토큰 만료 시간을 포함하게 되면 토큰에 대한 만료 처리 가능

3. 인증 절차

클라이언트   서버
id & password (인증 정보) 서버에 전달 → id & password 검증 
(유효한 사용자인지 확인)
 / JWT 생성 
(해당 사용자를 식별할 수 있는 고유 식별자를 포함한 JWT 생성)
JWT 저장
(로컬 스토리지 또는 세에 저장)
← 로그인에 대한 응답으로 반환 JWT 반환 (access_token)
API 요청 (헤더: JWT) 
(사용자 인증이 필요한 API 호출 시 헤더에 JWT를 포함하여 API 호출)
JWT 검증 (토큰의 위변조를 검증한 뒤 유효한 토큰이면 payload에 포함된 식별자를 통해 사용자 식별)

 

참조

  1. 인프런 강의: 신동현, 실전! FastAPI 입문 https://www.inflearn.com/course/%EC%8B%A4%EC%A0%84-fastapi-%EC%9E%85%EB%AC%B8/dashboard
  2.