본문 바로가기

BackEnd/Python-Flask

[백엔드] Flask: 파이썬에서 JWT사용

반응형

파이썬 Flask 에서 JWT사용

 

  • flask-jwt-extended 라이브러리를 우선 설치한다.
 
pip install flask-jwt-extended

ㄴ 참고 사이트: https://flask-jwt-extended.readthedocs.io/en/latest/options/

 

  • 해당 라이브러리는 다음 3개의 기능을 제공한다. 
create_access_token()
@jwt_required(optional=False): 무조건 토큰 필요. optional = True로 하면 상관 없다는 뜻
get_jwt_identity()

  • 파일 config.py를 만들어서 JWT에 관련한 코드를 관리해주는 것이 나중을 위해서라도 편리하다. 
  • configuration: 환경설정한다는 뜻, 환경설정한다는 뜻

 

  • 해당 파일에서 작성할 코드는 하기와 같다.
class Config:
    JWT_SECRET_KEY = 'yhacademy1029##hello'
    JWT_ACCESS_TOKEN_EXPIRES = False

    PROPAGATE_EXCEPTIONS = True
    # 메뉴얼에 있다.

JWT_SECRET_KEY

ㄴ Seed값

ㄴ 각각 유추하기 힘든 문자열로 구성해준다. 해당 키가 노출되면 해킹당할 위험이 현저히 올라간다. 

 

JWT_ACCESS_TOKEN_EXPIRES = False

ㄴ False로 설정하면, 토큰의 유효기간이 없어진다. 보안이 취약해지며, 해킹의 위험성이 있으므로, 가급적이면 피하는 것이 좋다. 

ㄴ True로 설정할 경우, 기본값: 30일

 

 PROPAGATE_EXCEPTIONS

ㄴ 명시적으로 예외를 전파하는 것에 대한 활성화 혹은 비활성화 함. 이 값을 특별히 설정을 안하거나 명시적으로 None으로 설정했을 경우라도 Testing 혹은 Debug가 true라면 이 값 역시 true가 된다. 

 

  • API서버를 구축하기 위한 메인 파일인 app.py에서 작성할 코드는 하기와 같다.
from flask import Flask
from flask_jwt_extended import JWTManager
from flask_restful import Api
from config import Config

app = Flask(__name__)

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

# JWT 토큰 라이브러리 만들기

jwt = JWTManager(app)

  •  JWTManager: JWT토큰이 유효한지 관리해주는 라이브러리
  •  app을 넣어주고,관리하라고 하는 것

 

 

반응형