RestFul API

JWT(JSON WEP TOKEN) ์•”ํ˜ธํ™” ๋กœ๊ทธ์•„์›ƒ API ๋งŒ๋“ค๊ธฐ

567Rabbit 2024. 5. 22. 16:50

 

user.py์— ์ถ”๊ฐ€ํ•˜๊ธฐ

 

from flask_jwt_extended import get_jwt, jwt_required

 

# ๋กœ๊ทธ์•„์›ƒ๋œ ํ† ํฐ์„ ์ €์žฅํ• , set์„ ๋งŒ๋“ ๋‹ค
jwt_blacklist = set()

class UserLogoutResource(Resource) :
    
    @jwt_required()
    def delete(self) :
        
        jti = get_jwt()['jti']
        jwt_blacklist.add(jti)
        return

 

 

 

 

 

app.py์— ์ถ”๊ฐ€ํ•˜๊ธฐ

 

from resource.user import UserLogoutResource

api.add_resource( UserLogoutResource, '/user/logout')
from resources.user import jwt_blacklist
# ๋กœ๊ทธ์•„์›ƒ๋œ ํ† ํฐ์œผ๋กœ ์š”์ฒญํ•˜๋Š” ๊ฒฝ์šฐ, ์ฒ˜๋ฆฌํ•˜๋Š” ํ•จ์ˆ˜ ์ž‘์„ฑ
@jwt.token_in_blocklist_loader
def check_if_token_is_revoked(jwt_header, jwt_payload):
    jti = jwt_payload['jti']
    return jti in jwt_blacklist

 

 

- ์•„๋ž˜ ์‚ฌ์ง„๊ณผ ๊ฐ™์€ ์œ„์น˜์— ์ถ”๊ฐ€ํ•ด์•ผ ํ•œ๋‹ค

 

 

 

 

 

 

๋กœ๊ทธ์ธํ–ˆ๋˜ ํ† ํฐ ๋ณต์‚ฌ

 

 

 

 

 

 

 

 

 

Postman์—์„œ ๋กœ๊ทธ์•„์›ƒ API ๋งŒ๋“ค์–ด์„œ Headers ๋ถ€๋ถ„์— ์ž‘์„ฑ

 

 

 

 

 

 

 

 

๋กœ๊ทธ์•„์›ƒํ•œ ํ† ํฐ์œผ๋กœ API๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๊ณ  ํ•˜๋ฉด ๊ฑฐ์ ˆํ•œ๋‹ค (๋กœ๊ทธ์ธ ํ•ด์•ผ API๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค์ •ํ•˜์˜€๊ธฐ ๋•Œ๋ฌธ์—!)