Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
📎 이슈번호
#108 [04-10] 서버는 Auth Guard를 통해 특정 서비스를 인증된 사용자만 접근할 수 있도록 제한한다
📃 변경사항
cookie-parser
패키지 설치main.ts
에서app.use(cookieParser())
로 쿠키파서 적용utils
폴더 추가auth.util.ts
추가CookieAuthGuard
추가📌 중점적으로 볼 부분
cookie-auth.guard.ts 부분 로직만 신경써서 봐주시면 될 듯 합니다..
이게 맞나,,? 싶을 정도로 더럽긴 한데 나중에 리팩토링 해야겠습니다..
그러고보니 테스트 코드를 먼저 짜고 했어야 했는데 못했네요 ㅋㅋㅋ
후,, 할 일이 많아지네 점점
자세한 내용은 개발 기록 읽어 주시면 감사하겠습니다!!
만들어진
CookieAuthGuard
는 인가가 필요한 곳에@UseGuards(CookieAuthGuard)
의 형식으로 사용하시면 됩니다!🎇 동작 화면
쿠키가 없는 경우
당연히 Unauthorized 에러가 발생한다.
accessToken이 유효한 경우
인가가 잘 된 모습을 보인다.
accessToken이 유효하지 않은 경우
refreshToken이 유효하지 않은 경우
accessToken과 refreshToken의 payload에서 유효 기간을 만료한 상태로 쿠키에 저장하여 테스트 해보았다.
Unauthorized 에러가 발생한다.
쿠키도 사라진 모습을 보인다.
refreshToken이 유효한 경우
Redis에 저장된 토큰 정보와 일치한 경우
인가가 잘 된 모습을 보인다.
또한 accessToken이 현재 시간 기준으로 재발급 되었다!
Redis에 저장된 토큰 정보와 일치하지 않은 경우
로그인을 한 후 Redis의 해당 정보를 삭제하고 확인해보았다.
Unauthorized 에러가 발생한다.
역시 쿠키도 사라진 모습을 보인다.
💫 기타사항