728x90
반응형
flask_jwt_extended
flask에선 flask_jwt_extended라는 이름으로 jwt 토큰에 대한 기능을 제공해준다.
토큰 인증에 대한 테스트는 POSTMAN으로 했고, JWT에 대한 내용은 아래 글을 참고하면 좋을 것 같다.
https://hwan001.tistory.com/277
Access 토큰 생성하기
config.py
flaskJwt_secret_key = "secret_key"
flask_admin_id = "admin"
flask_admin_pw = "1234"
app.py
import sys
import subprocess
try:
from flask import Flask
from flask import request, render_template, make_response, jsonify, session, redirect, url_for, Response
from flask_jwt_extended import jwt_required, get_jwt_identity, create_access_token, JWTManager
except:
subprocess.check_call([sys.executable, '-m', 'pip', 'install', '--upgrade', 'pip'])
subprocess.check_call([sys.executable, '-m', 'pip', 'install', '-r', 'requirements.txt'])
import config
app = Flask(__name__)
app.config['JWT_SECRET_KEY'] = config.flaskJwt_secret_key
app.config['JWT_ACCESS_TOKEN_EXPIRES'] = timedelta(hours=1) # 기본설정은 15분
jwt = JWTManager(app)
# 메인 페이지
@app.route('/')
def main():
return render_template('main.html')
# 로그인 정보가 일치할 경우, 토큰을 생성한다.
@app.route("/login", methods=['POST'])
def login():
input_data = request.get_json()
user_name = input_data['id']
user_pw = input_data['pw']
if (user_name == config.flask_admin_id) and (user_pw == config.flask_admin_pw):
return jsonify(result = "True", access_token = create_access_token(identity = user_name))
return jsonify(result = "False")
postman
토큰 사용하기
app.py
#from flask_jwt_extended import jwt_required, get_jwt_identity
@app.route("/my_jwt_test", methods=['GET'])
@jwt_required()
def my_jwt_test():
current_user = get_jwt_identity()
return jsonify(logged_in_as=current_user), 200
postman
728x90
반응형
'프로그래밍 > Web' 카테고리의 다른 글
FastAPI와 Ajax로 SSH 서버 상태 체크하는 웹 서버 만들기 (0) | 2023.02.19 |
---|---|
백엔드 로드맵 정리 (0) | 2022.09.12 |
[Django] 장고 기본 웹서버 띄우기 (0) | 2022.03.28 |
댓글