왕현성
코딩발자취
왕현성
전체 방문자
오늘
어제
  • 코딩 (277)
    • Python (71)
    • Java (16)
    • MySQL (34)
    • 인공지능 (48)
      • 머신러닝 (16)
      • 딥러닝 (32)
    • 영상처리 (4)
    • Rest API (21)
    • Android Studio (25)
    • streamlit (13)
    • DevOps (22)
      • AWS (9)
      • PuTTY (5)
      • Git (4)
      • Serverless (2)
      • Docker (2)
    • IT 기술 용어 (6)
    • 디버깅 ( 오류 해결 과정 ) (17)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 영상기술
  • tune()
  • maskimage
  • ComputerVision
  • ckpt_file
  • yolov8
  • UnboundLocalError
  • 영상처리
  • PYTHON
  • labelme UnocodeDecodeError
  • 컴퓨터비전
  • pip install labelme
  • 딥러닝
  • 기상탐사
  • alibi-detection
  • OpenCV
  • TensorFlow
  • numpy
  • PIL
  • matplotlib
  • pytorch
  • encoding='utf-8'
  • imageprocessing
  • alibidetect
  • labelme
  • 비지도학습
  • get_long_description
  • unsupervised
  • 영상처리역사
  • 의료이미징

최근 댓글

최근 글

티스토리

250x250
hELLO · Designed By 정상우.
왕현성

코딩발자취

API서버 - 로그아웃 기능 구현하기 (jwt 토큰 파괴)
Rest API

API서버 - 로그아웃 기능 구현하기 (jwt 토큰 파괴)

2023. 1. 5. 15:56
728x90

1. flask_jwt_extended 라이브러리를 이용하여 로그아웃 기능 구현하기

  • 토큰을 이용하여 로그인 상태인 유저의 토큰을 파괴하여 로그아웃 상태로 변경
  • 즉, 토큰이 유효할 때만 로그인 상태의 권한을 누릴 수 있음
    • 토큰 (token)
      • 유저의 식별 정보를 암호화 한 것
      • 로그인을 통해 식별 정보를 토큰화
      • 토큰을 이용하여 신원을 확인
      • 로그아웃을 통해 토큰을 폐기
    • 토큰 생성
      • create_access_token( var ) : var의 데이터를 토큰화
    • 토큰 식별
      • jwt_required() : 토큰이 존재해야 다음의 코드를 수행
    • 토큰 파괴
      • @jwt.token_in_blocklist_loader : 토큰이 블록리스트에 존재하면 다음의 코드 수행
        • blacklist/blocklist : 이전에는 blacklist를 사용하였으나 이름이 변경되어 blocklist를 사용
        • payload : 토큰의 정보를 담고 있음
        • jti : jwt 토큰의 고유 ID
      • jwt_blocklist : 토큰의 파괴 기능을 담당

 

로그아웃 코드 작성 - user.py

### 로그아웃 ###
# 로그아웃된 토큰을 저장할 set 만든다.

jwt_blacklist = set()

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

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

로그아웃 코드 작성 - app.py

# 로그아웃된 토큰으로 요청하는 경우 처리하는 코드작성.
@jwt.token_in_blocklist_loader
def check_if_token_is_revoked(jwt_header,jwt_payload) :
    jti = jwt_payload['jti']
    return jti in jwt_blacklist

포스트맨을 이용한 테스트 - 로그인 API

- 로그인 이후 header에 토큰을 작성하고 내 레시피 가져오는 것에 성공한 모습

 

로그아웃 API를 이용해 로그아웃을 한 후에

같은 토큰으로 레시피 리스트 가져오기에 실패한 모습  => 로그아웃이 정상적으로 된 것을 확인.

'Rest API' 카테고리의 다른 글

API 서버 - 구글 코랩으로 추천기능 개발 이후 영화 추천하는 API 개발 ( 배포 )  (0) 2023.01.09
API 서버 - query string 페이징 처리  (0) 2023.01.06
API - Flask_JWT 라이브러리 설치법과 사용법  (0) 2023.01.05
API - Postman 다운로드 , 사용법  (0) 2023.01.04
API서버 - 클라이언트가 원하는 값 삭제하기 (DELETE)  (0) 2023.01.04
    'Rest API' 카테고리의 다른 글
    • API 서버 - 구글 코랩으로 추천기능 개발 이후 영화 추천하는 API 개발 ( 배포 )
    • API 서버 - query string 페이징 처리
    • API - Flask_JWT 라이브러리 설치법과 사용법
    • API - Postman 다운로드 , 사용법
    왕현성
    왕현성
    AI 머신비전 학습일지

    티스토리툴바