개발공부

[Flask 에서 JWT 사용] Logout 기능 구현 본문

Python/Flask

[Flask 에서 JWT 사용] Logout 기능 구현

mscha 2022. 6. 21. 10:30

로그아웃 기능을 jwt를 이용해서 하는 방법은

 

로그아웃 API 기능을 하는 클래스를 아래와 작성하고

from flask_jwt_extended import get_jwt

jwt_blocklist = set()
# 로그아웃 기능을 하는 클래스
class UserLogoutResource(Resource) :
    @jwt_required()
    def post(self) :
        jti = get_jwt()['jti']
        print(jti)
        
        jwt_blocklist.add(jti)


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

 

app.py에서 아래와 같은 코드를 추가한다.

아래는 resources 폴더의 user.py에 있는 jwt_blocklist를 불러온 것이다.

from resources.user import jwt_blocklist
# 로그아웃된 토큰이 들어있는 set을, jwt에 알려준다.
@jwt.token_in_blocklist_loader
def check_if_token_is_revoked(jwt_header, jwt_payload) :
    jti = jwt_payload['jti']
    return jti in jwt_blocklist