Flask

로그인한 유저만 처리할 수 있는 API 에 토큰 적용하는 방법

yugyeong 2023. 1. 5. 15:59

로그인한 유저만 처리할 수 있는 API 에 토큰을 적용하는 방법이다.

 

예를 들어서 레시피 작성하는 api 를 생성한다고 할 때, 내가 만든 레시피 리스트만 뽑아서 보거나 , 내 아이디로 레시피를 게시글을 작성할 때 이용하는 방법이다.

 

 

API 함수를 작성할 때 함수 젤 위에 

@jwt_required() 를 작성을 해준다. 

함수 안에서 get_jwt_identity() 를 변수 user_id 로 받아주면, 로그인한 유저만 처리할 수 있도록 토큰을 변수 user_id 로 가져온 것이다.

 

쿼리문에서 user_id 에 변수 설정을 해주고, record 에는 위에서 받아온 user_id 를 넣어주면 된다.

@jwt_required()
def put(self, recipe_id) :

    user_id = get_jwt_identity()

    try :
        connection = get_connection()

        query = '''update recipe
                set
                is_publish = 1
                where id = %s and user_id = %s;'''

        record = (recipe_id, user_id)
        cursor = connection.cursor()
        cursor.execute(query, record)
        connection.commit()
        cursor.close()
        connection.close()


    except Error as e :
        print(e)
        cursor.close()
        connection.close()
        return {'result' : 'fail', 'error' : str(e)} , 500

    return {'result' : 'success'}, 200

 

postman

postman 으로 이동을 한다.

 

Headers 로 가서 KEY 값은 Authorization 으로 설정을 해준다.

VALUE 에는 제일 앞에 Bearer 를 입력한 후, 한칸 띄어서 access_token 값을 넣어주고 실행을 하면 된다.