본문 바로가기
Restful API

[Restful API] 로그아웃 API 만드는 방법

by dong_su 2023. 12. 7.
from resources.user import jwt_blocklist

# 로그아웃된 토큰으로 요청하면, 실행되지 않게 처리하는 코드
@jwt.token_in_blocklist_loader
def check_if_token_is_revoked(jwt_header, jwt_payload) :
    jti = jwt_payload['jti']
    return jti in jwt_blocklist

-> 첫 실행 파일인 app.py 파일에 작성한다.

 

from flask_jwt_extended import get_jwt, jwt_required

jwt_blocklist = set()
class UserLogoutResource(Resource) :

    @jwt_required()
    def delete(self) :
        
        jti = get_jwt()["jti"]

        jwt_blocklist.add(jti)

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

-> @jwt_required() = 로그아웃을 하려면 로그인이 되어있어야 하니까 토큰이 있어야 실행 가능하게 만든 것이다.


-> Postman에서 실행시 로그아웃이 잘 된 모습이다.

 

-> 한번 더 실행하면 토큰이 없기 때문에 에러가 뜬다. 제대로 작동한 모습이다.