군침이 싹 도는 코딩
Flask 에서 JWT 사용 로그인한 유저만 처리할 수 있는 API에 토큰 적용하는 방법 본문
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 into recipe
(name, description, num_of_servings, cook_time, directions, user_id)
values
( %s, %s, %s, %s, %s, %s);'''
### 3. 쿼리에 매칭되는 변수 처리 해준다 (튜플로 넣는다)
record = ( data["name"],data["description"],data["num_of_servings"],data["cook_time"],data["directions"],user_id)
### 4. 커서를 가져온다
cursor = connection.cursor()
### 5. 쿼리문을 커서로 실행한다
cursor.execute(query, record)
### 6. 커밋 해줘야 DB에 완전히 반영된다
connection.commit()
### 7. 자원 해제
cursor.close()
connection.close()
except Error as e :
print(e)
cursor.close()
connection.close()
return { "result":"fail", "error": str(e) }, 500
# API를 끝낼때는
# 클라이언트에 보내줄 정보(json)와 http 상태코드를 리턴한다
return {"result":"success"}, 200
# 기존에 코딩했던 부분에서 토큰을 처리하는 방법은 @jwt_required() 를 넣어 토큰이 없으면 실행할 수 없다는 코드를
넣어준다 그리고 토큰이 있다면 정보를 받아 오라는 user_id = get_jwt_identity() 를 써준다 그 후 밑에 쿼리문을
user_id를 추가시켜주고 레코드에도 user_id를 써준다
# 적용할 API로가서 헤더 부분을 누르고 Key는 Authorization으로 Value는 Bearer 로그인시나온토큰
이렇게 써주면 로그인한 유저만 처리할 수 있는 API가 된다
'Python > Flask' 카테고리의 다른 글
로그아웃 시키는 방법 (0) | 2023.01.05 |
---|---|
토큰 유효기간 만료 시키는 방법 (0) | 2023.01.05 |
Flask 에서 JWT 회원가입 / 로그인 API에서 토큰 처리 방법 (0) | 2023.01.05 |
Flask 에서 JWT 설치 방법 (0) | 2023.01.05 |
Python Flask에서 Resource 클래스를 이용한 API 서버 개발 방법 (0) | 2023.01.04 |