Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

#210 [feat] 토큰 갱신 api 구현 #232

Merged
merged 6 commits into from
Feb 5, 2024
Merged

#210 [feat] 토큰 갱신 api 구현 #232

merged 6 commits into from
Feb 5, 2024

Conversation

KWY0218
Copy link
Member

@KWY0218 KWY0218 commented Feb 4, 2024

관련 이슈번호

해결하는 데 얼마나 걸렸나요? (예상 작업 시간 / 실제 작업 시간)

  • 2h / 3h

해결하려는 문제가 무엇인가요?

  • access token 만료 시 refresh token 을 활용한 토큰 갱신 api 구현

어떻게 해결했나요?

  • 엑세스 , 리프레쉬 토큰 만료 시간 승희랑 합의해서 10분 / 14일로 정했습니다!
    추후에 사용자들 평균 접속 시간을 유추할 수 있으면 해당 시간 적용해서 엑세스 토큰의 만료 시간을 수정하려고 합니다.

  • 리프레쉬 토큰이 만료되었을 때만 401을 반환하도록, 헤더 값이 비어 있거나 null 일 때는 400을 반환하도록 수정했습니다.

토큰 갱신 흐름

로그인

  1. access token, refresh token 발급 후 클라한테 전달
  2. redis 내에 userId(key) 로 refresh token(value)를 저장

토큰 만료 시 (refresh 토큰 호출)

  1. 클라이언트가 Body 값으로 [ access , refresh ] 같이 넣어서 보낸다.
  2. 우선 access token을 디코딩해서 userId를 반환 받는다.
  3. redis에 저장된 refresh 토큰과 body 값으로 온 refresh 토큰을 비교해서 일치하는 지 확인한다.
  4. 일치한다면 refresh 토큰이 유효기간을 지났는 지 확인한다.
  5. 유효기간이 지나지 않았으면 새로운 [access , refresh] 발급 후 반환하며
  6. 새로운 refresh 토큰을 redis에 저장한다.

로그아웃, 탈퇴

  1. header로 온 access token을 디코딩 한 후 userId를 추출한다.
  2. userId와 매핑된 refresh token을 제거한다.

@KWY0218 KWY0218 requested review from hellozo0 and pkl0912 February 4, 2024 16:04
@KWY0218 KWY0218 self-assigned this Feb 4, 2024
Copy link
Member

@hellozo0 hellozo0 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

설명 남겨주신 내용 코드들 확인했습니다!!

리프레시 토큰이 어디에 저장되고 어떻게 사용되는지에 대한 개념이 명확하게 잡히지 않아서 좋은 방안 이나 등등... 유의미한 리뷰는 달수가 없네요.... 돌아와서 더 공부 해보겠습니다

@KWY0218 KWY0218 merged commit aa00384 into develop Feb 5, 2024
1 check passed
@KWY0218 KWY0218 deleted the feat/#210 branch February 5, 2024 02:25
@KWY0218 KWY0218 restored the feat/#210 branch February 5, 2024 02:27
@KWY0218 KWY0218 deleted the feat/#210 branch February 16, 2024 07:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[feat] access token 갱신 api 구현
2 participants