백엔드

Flask 에서 JWT 사용하는 방법 (1) - 설치 방법

Cong_S 2022. 6. 20. 17:24

JWT(JSON Web Token)란 인증에 필요한 정보들을 암호화시킨 토큰을 말한다.

JWT 기반 인증은 JWT 토큰(Access Token)을 HTTP 헤더에 실어 서버가 클라이언트를 식별하는 방식이다

 

토큰 기반 인증 시스템은 세션을 사용하는 서버 기반 인증 시스템과 달리,

클라이언트가 서버에 접속을 하면 서버에서 해당 클라이언트에게 인증되었다는 의미로 '토큰'을 부여한다.

이 토큰은 유일하며 토큰을 발급받은 클라이언트는 또 다시 서버에 요청을 보낼 때 요청 헤더에 토큰을 심어서 보낸다.

서버에서는 클라이언트로부터 받은 토큰을 서버에서 제공한 토큰과의 일치 여부를 체크하여 인증 과정을 처리하게 된다.

 

설치하는 코드는 다음과 같다.

 

pip install flask-jwt-extended

 

라이브러리를 다운받은 후 사용하기 위해서는 config.py 파일을 만들고 Flask의 기본구조가 있는 파일(ex. app.py 등) 을 수정해야 한다.

 

먼저 config 파일을 만들어 

다음과 같은 코드를 추가한다.

 

class Config : 
    # 이 부분은 시드 값으로 외부 유출 XX
    JWT_SECRET_KEY = 'highhhhrqllzq1206'

    # True는 토큰 유지 시간제한을 원할 때, False 시간제한 없음
    JWT_ACCESS_TOKEN_EXPIRES = False

    PROPAGATE_EXEPTIONS = True

 

환경설정 파일로 기본 파일에서 JWT를 세팅할 때 필요하다.

 

다음   Flask의 기본구조가 있는 파일(ex. app.py 등)로 가서

 

# Flask 구조 시작부분
app = Flask(__name__)

# 환경변수 셋팅
app.config.from_object(Config)

# JWT 토큰 라이브러리 만들기
jwt = JWTManager(app)

 

Flask가 시작한 후에 환경변수를 세팅해주고

JWTManager() 함수를 통해 JWT 토큰 라이브러리를 만든다.