목록Python/Flask (21)
군침이 싹 도는 코딩
@jwt_required(optional=True) # jwt_required 파라미터에 옵셔널 트루라고 적으면 포스트맨에서 실행할때 헤더부분의 토큰을 체크하거나 안하거나 API를 사용할 수 있다 class MovieListResource(Resource) : @jwt_required(optional=True) def get(self) : # 영화 리스트 가져오기 user_id = get_jwt_identity() offset = request.args.get('offset') limit = request.args.get('limit') order = request.args.get('order') try : connection = get_connection() if user_id is None : que..
# 먼저 포스트맨에서 Params 에 들어가 offset(시작점) limit(몇개나 가져올지)를 지정해준다 이렇게해서 쿼리 스트링을 만들어준다 @jwt_required() def get(self): # 메모 불러오기 user_id = get_jwt_identity() # 클라이언트에서 쿼리스트링보내는 데이터는 request.args 에 들어있다 offset = request.args.get('offset') limit = request.args.get('limit') # 1. 클라이언트로부터 데이터를 받아온다 # 없다 # 2. DB에 저장된 데이터를 가져온다 try : connection = get_connection() query = '''select id,title, datetime, content,..
# 먼저 포스트맨에서 로그아웃 API를 만들어준다 메소드는 포스트로 주소를 만들어주고 헤더에 로그인에 사용된 토큰을 넣어준다 # 로그아웃된 토큰을 저장할 set 만든다. jwt_blacklist = set() from flask_jwt_extended import get_jwt class UserLogoutResource(Resource) : @jwt_required() def post(self) : # 로그아웃 jti = get_jwt()['jti'] jwt_blacklist.add(jti) return {'result':'success'}, 200 # 먼저 블랙리스트라는 비어있는 셋을 하나 만들어준다 클래스를 하나 만들고 로그아웃하는 코드를 써준다 이렇게하면 로그아웃은 되지만 토큰은 사용이 되므로 로..
class Config : JWT_SECRET_KEY = 자신의키값 JWT_ACCESS_TOKEN_EXPIRES = True PROPAGATE_EXCEPTIONS = True # 토큰 유효기간 만료 시키는 방법은 config.py의 JWT_ACCESS_TOKEN_EXPIRES = True 설정을 하고 create_access_token(user_id, expires_delta= datetime.timedelta(days=10)) return {"result" : "success", "access_token" : access_token}, 200 # access_token 생성 부분에 create_access_token(user_id, expires_delta= datetime.timedelta(days=..
class RecipeListResource(Resource) : # API를 처리하는 함수 개발 # HTTP Method 를 보고 똑같이 만들어준다 # jwt 토큰이 필수라는 뜻 : 토큰이 없으면 이 API는 실행이 안된다 @jwt_required() def post(self): # 1. 클라이언트가 보내준 데이터를 받아준다 data = request.get_json() # 1-1 헤더에 JWT 토큰이 있으면, 토큰 정보를 받아준다 user_id = get_jwt_identity() # print(data) # 2. 이 레시피 정보를 DB에 저장해야한다 try : ### 1. DB에 연결 connection = get_connection() ### 2. 쿼리문 만들기 query = '''insert i..
from datetime import datetime from flask import Flask, request from flask_restful import Resource from mysql.connector import Error from mysql_connection import get_connection from email_validator import validate_email, EmailNotValidError from utils import hash_password from flask_jwt_extended import create_access_token class UserRegisterResource(Resource) : def post(self) : # {"username": "홍길동"..
pip install flask-jwt-extended # JWT 설치 코드이며 아래 3개의 라이브러리를 사용 가능하다 - create_access_token() : jwt 생성 - @jwt_required(optiontal = True / False) : False 시 무조건 토큰 필요함, True 시 상관 없다는 뜻 권한을 줄때 주로 사용 - get_jwt_identity() : 클라이언트의 header 부분에 있는 jwt를 복호화한다. class Config : JWT_SECRET_KEY = '본인의 KEY' JWT_ACCESS_TOKEN_EXPIRES = True PROPAGATE_EXCEPTIONS = True # 프로젝트에 config 파일에 넣어준다 JWT_SECRET_KEY : 암호화에 필..
from flask import Flask from flask_restful import Api from config import Config from resources.recipe import RecipeListResource, RecipePublishResource, RecipeResource from resources.user import UserRegisterResource app = Flask(__name__) app.config.from_object(Config) api = Api(app) #------------ 환경변수 세팅 api.add_resource(RecipeListResource, '/recipes') api.add_resource(RecipeResource, '/recipes/'..