Javascript/NestJS
Login Process
nickmorohe
2022. 12. 5. 11:15
1. 사용자가 로그인
2. 서버에서 사용자가 입력한 ID, PW를 회원 DB에서 값을 비교(Authorization)
3. 로그인이 완료되면 accessToken(JWT), refreshToken(JWT) 발급
- accessToken : 해당 데이터 payload를 통해 전달
- refreshToken : 쿠키를 통해 전달
4. 만료된 accessToken을 첨부하여 요청을 보냄
5. 서버가 인가를 해보면서 토큰이 만료되었음을 확인하고 에러를 반환
- accessToken 만료가 되어 인가시 에러가 반환되면 refreshToken으로 accessToken을 재발급 받는 API를 프론트에서 요청
6. 토큰이 만료되었음을 확인하고 토큰 재발급 요청(restoreAccessToken)를 쿠키와 함께 요청
- restoreAccessToken API를 통해 새로운 토큰 재발급이 가능하기에 사용자가 로그인을 다시 해야하는 불편함을 해소
- 따라서, refreshToken이 만료되었을 때만 사용자가 재로그인
7. 쿠키에 refreshToken을 확인해(인가) 새로운 accessToken을 발급해서 반환
8. 재발급된 토큰과 함께 실패한 요청에 대해 재요청