토큰 기반 인증 사용에 대한 내용입니다.
해당 기능은 공통업무 기능입니다. 다음과 같이 미리 준비된 Boilerplate confy-app 형태로 제공됩니다.
/src/shared/utils/apiClient.ts
axios 라이브러리를 이용하여 HTTP 외부 통신이 이루어짐.token 을 저장 합니다.token 을 지정 합니다.axios-auth-refresh 라이브러리의 createAuthRefreshInterceptor를 통하여 401 Error 발생시에 token을 재발급 요청을 합니다.token 재발급 실패시 logout 진행 후 login 페이지로 이동합니다.axios 인스턴스를 통해서 HTTP 외부 통신이 이루어짐1.사용자 입력: 사용자가 로그인 페이지에서 이메일과 비밀번호를 입력합니다.
2.유효성 검증: Zod 스키마를 통해 폼 데이터의 유효성을 검증합니다.
3.인증 요청: 유효한 데이터로 API 서버에 인증 요청을 보냅니다.
4.토큰 저장: 인증 성공 시 응답으로 받은 토큰을 로컬 스토리지에 저장합니다.
5.초기 데이터 로드: 토큰을 사용하여 사용자 정보와 사이트 정보를 로드합니다.
6.상태 저장: 로드된 데이터를 Zustand 스토어에 저장하여 전역 상태로 관리합니다.
7.UI 업데이트: 로그인 상태에 따라 UI가 업데이트됩니다.
1.사용자가 로그인 페이지에 접근:
2.사용자가 이메일과 비밀번호 입력 후 제출:
3.백엔드 API에 인증 요청:
4.인증 성공 시:
5.전역 데이터 로드:
6.UI 업데이트:
7.로그아웃 처리:
1.API 호출 시 토큰 만료로 401 에러 발생
2.토큰 재발급 API 호출
2-1.재발급 성공 시 실패한 API 재호출
2-2.재발급 실패 시 logout 후 login 페이지로 이동