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에서 실행시 로그아웃이 잘 된 모습이다.
-> 한번 더 실행하면 토큰이 없기 때문에 에러가 뜬다. 제대로 작동한 모습이다.
'Restful API' 카테고리의 다른 글
[Restful API] [Error] Object of type Decimal is not JSON serializable 에러 해결 방법 (0) | 2023.12.12 |
---|---|
[Restful API] Query String(Query Parameter) 페이징 처리하는 방법 (1) | 2023.12.08 |
[Restful API] 로그인한 유저만 처리할 수 있는 API에 토큰 적용하는 방법 (1) | 2023.12.07 |
[Restful API] JWT 토큰 유효시간 만료 방법 (1) | 2023.12.07 |
[Restful API] flask에서 JWT 사용하는 방법 (0) | 2023.12.07 |