로그아웃 된 토큰을 관리할 set 생성
# 로그아웃된 토큰을 저장할 set 을 만든다.
# 로그아웃된 토큰의 식별자(JTI)를 저장하여 추후 요청에서 해당 토큰이 사용되지 못하게 한다.
jwt_blacklist = set()
class UserLogoutResource(Resource):
@jwt_required()
def delete(self):
# 현재 요청에서 사용된 JWT 토큰의 JTI(JWT ID)를 가져옴
# JTI는 토큰의 고유 식별자
jti = get_jwt()['jti']
# 현재 사용된 JWT 토큰의 JTI를 블랙리스트에 추가
# 이를 통해 이 토큰이 이후에 더 이상 사용되지 못하도록 한다.
jwt_blacklist.add(jti)
return {'result' : 'success'}
app.py 에 로그아웃된 토큰으로 요청하는 경우 처리하는 함수 작성
# JWT 블랙리스트 체크 기능 추가
@jwt.token_in_blocklist_loader
def check_if_token_is_revoked(jwt_header, jwt_payload):
# 이 함수는 JWT 토큰이 블랙리스트에 있는지 확인한다.
# 토큰이 블랙리스트에 있으면 이 함수는 True를 반환하여
# 해당 토큰을 무효화한다.
jti = jwt_payload['jti']
return jti in jwt_blacklist
포스트맨에서 테스트
Headers에 Key는 Authorization, VALUE는 Bearer 토큰값 입력
'Restful API' 카테고리의 다른 글
[Restful API] 이미지 S3에 업로드하는 API 만들기, boto3 (0) | 2024.05.28 |
---|---|
[Restful API] 영화 추천 API 만들기 (0) | 2024.05.27 |
[Restful API] 토큰 유효기간 만료 시키기 (0) | 2024.05.22 |
[Restful API] 로그인한 유저만 처리할 수 있는 API에 토큰 적용하는 방법 (0) | 2024.05.22 |
[Restful API] 회원가입 / 로그인 API 에서 토큰 생성해서 처리하는 방법 (0) | 2024.05.22 |