Skip to content

[Feature Request] 액세스 토큰과 리프레시 토큰 사용 #31

@jgkim14

Description

@jgkim14

기능 요청

기능에 대한 간단한 설명:

  • 액세스 토큰과 리프레시 토큰 추가

필요한 이유:

  • XSS 공격에 대비하기 위하여 유효기간이 짧은 액세스 토큰과 유효기간이 긴 리프레시 토큰을 같이 사용한다.

기능의 예상 동작:

  • 첫 회원가입 및 로그인 시 서버는 클라이언트에게 액세스 토큰과 리프레시 토큰을 전송한다.
  • 서버는 리프레시 토큰을 users DB에 저장한다.
  • 그 이후 클라이언트는 리프레시 토큰만을 httpOnly 쿠키에 저장하고, 액세스 토큰은 Session Storage에 저장한다.
  • 클라이언트는 요청을 전송 시 JSON 헤더에 액세스 토큰을 포함하여 요청한다.
  • 만약 서버에서 액세스 토큰이 만료됨을 알리면 쿠키에 저장된 리프레시 토큰을 전송한다.
  • 서버는 DB에 저장된 리프레시 토큰과 일치하는지 확인한다.
  • 토큰이 일치하면 새로운 액세스 토큰을 받는다. 리프레시 토큰을 받고 새 액세스 토큰을 받는 과정은 사용자가 눈치채지 못하게 몰래 수행한다.
  • 사용자가 로그아웃을 수행시 users DB에서 토큰을 삭제한다.

추가 정보:

우선순위:

  • 높음

기타 의견:

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions