우리 팀의 공식 개발 일정은 화~토 사이이다.
따라서 쉬는 날 한 작업들은 화요일 회고에 같이 기록한다!
📖 2022년 4월 26일
✔️ 오늘 내가 한 일
- 칵테일 정보 수집 (설명, 맛)
- 칵테일 조회 API
- 인증과 인가 공부
- Refresh Token 공부
- DB 구축
- 미들웨어 설계
😥 어려움을 겪은 일
[ 함수 단위로 코드를 분리하면서 생긴 Issue ]
1. Task
Refresh Token을 구현하자.
2. Situation
1) Client에게 받은 Refresh Token이 유효한지 확인하는 유틸 함수이다.
2) /refresh 요청이 들어왔을 때 토큰을 재발급하는 미들웨어 코드를 짜고 있었다.
refresh 토큰의 유효성을 검사하고 1번의 함수를 보면 return을 true나 false로 설정했기 때문에
아래 사진에서 두번 째 if문에서 refresh 토큰 역시 만료되었을 때 다시 로그인 하라는 메세지를 반환하고 싶었다.
3) 그런데 refreshResult를 출력해보니깐 다음과 같이 출력이 되어 if문에 걸러지지 않고
이미 유효기간이 지난 Refresh Token으로도 Access Token이 재발급 되고 있었다.
3. Action
코드를 console.log()로 계속 확인해보는 과정에서 내가 함수를 비동기로 구현했기 때문에 Promise를 반환한다는 것을 찾았다.
따라서 async를 사용하고 있었기 때문에 비동기식으로 접근하여 await로 함수를 받아왔다.
4. Result
await를 붙여서 해결했다.
💡 TIL ( Today I Learned )
1차 때 구현하고 싶던 Refresh Token을 구현했다.
그리고 또 고민해볼 것은 현재 내가 구축한 방식은 Refresh Token을 따로 저장하고 있는데 앞으로 이 Token 사용 가능성을 더 생각해보고 우리 DB에 무겁고 불필요하다고 생각되면 컬렉션을 없앨 예정이다.
-> 왜 저장을 해야하는지 다시 내가 짠 로직을 보며 깨달았다. 7일 차 회고로 GO~!!
👉 < [Node.js+Express] Refresh Token 구현 > 포스팅 보러가기
💁♀️ 오늘 느낀 점
주말동안 인증과 인가에 대해서 공부했다. 프로젝트를 진행하며 우리가 개발하는 서비스에 직접 구현해볼 수 있어 재밌었다. 또한 프론트에서 앞으로 이 처리를 어떻게 구현할 지 기대가 되고 나도 공부해야겠다.
📌 내일 할 일(계획)
- OAuth Client에게 Response 할 때 accessToken도 같이 반환하기
- Validation 추가하기
[Fix] MongoDB Token 저장하는 코드 지우기
'프로젝트 회고 > 저쪽 손님께서 보내신 겁니다. 🍸' 카테고리의 다른 글
[칵테일 웹 서비스 프로젝트] 8일 차 회고 (0) | 2022.04.28 |
---|---|
[칵테일 웹 서비스 프로젝트] 7일 차 회고 (2) | 2022.04.27 |
[웹 서비스 프로젝트] 5일 차 회고 (0) | 2022.04.23 |
[웹 서비스 프로젝트] 4일 차 회고 (0) | 2022.04.22 |
댓글