PROTOTYNE / PROTOTYNE_BE

0 stars 0 forks source link

[Refactor] 토큰 관련 로직 수정 #144

Closed chock-cho closed 1 month ago

chock-cho commented 1 month ago

📌 관련 이슈

143

✨ PR 내용


1. Access Token Only ➡️ RTR 전략


  1. 서버가 Refresh Token을 발급할 때, DB에 Refresh Token을 저장해둔다.
  2. 유저가 Refresh Token을 통하여 Access Token을 발급할 때, Refresh Token도 함께 재발급 받는다.(Refresh Token 탈취 방지)
  3. 유저가 Access Token 재발급을 위하여 서버에게 Refresh Token의 유효성 검증을 보내면, 해당 서버는 유효성 검증을 하고, DB에 저장된 Refresh Token과 일치하는지 확인한다.

    2. Refresh Token 저장소 설정: RDB ➡️ Redis


    In-memory DB인 Redis를 이용하여 Refresh Token 관리의 효율성을 높임.

    • 실제 테스트 환경에서 18ms → 9ms의 성능 향상을 보임 성능향상 성능향상 after

      3. 일반회원, 기업회원 로그아웃 API 구현 /users/logout /enterprise/logout


    • 기존 토큰 발급 로직을 수정함에 따라, 비록 TTL이 설정되어있을지라도 사용자가 로그아웃할 때마다 Redis에서 관리하는 Refresh Token을 만료시켜주는 작업 필요성
    • 헤더에 Access Token 실어 보내면, 해당 Access Token으로 인증된 사용자(일반회원/기업회원)에 해당하는 Refresh Token 강제 만료시킴
    • 로그인access_token- refresh_token 로그아웃access-refresh

📚 레퍼런스 혹은 궁금한 사항들

📸 스크린샷(선택)