카테고리 없음
Flask에서 JWT를 활용한 로그아웃 기능
zzuvely
2022. 6. 21. 10:13
플라스크에서 jwt 로그아웃 기능
1) 로그아웃 기능을 하는 클래스 생성
### user.py
# 로그아웃 되었는지 확인해줌
# set에 토큰이 있으면 로그아웃한 유저
jwt_blacklist = set()
# 로그아웃 기능을 하는 클래스
class UserLogoutResource(Resource) :
@jwt_required()
def post(self) :
# jti : token 구별을 위한 unique id
# 헤더 부분에 jti를 가져와
jti = get_jwt()['jti']
print(jti)
# jwt_blacklist에 jti 값을 넣어줌
jwt_blacklist.add(jti)
return
2) 글을 생성하거나 수정할 때 사용자가 로그아웃되었는지 확인해준다.
### app.py
from resources.user import UserLogoutResource, jwt_blacklist
# 로그아웃 된 토큰이 들어있는 set을 jwt에 알려준다.
# JWT가 취소되었는지 확인하는 데 사용되는 콜백 함수를 설정한다.
@jwt.token_in_blocklist_loader
def check_if_token_is_revoked(jwt_header, jwt_payload) :
jti = jwt_payload['jti']
return jti in jwt_blacklist