Headers & Session Auth
인증이 없는 프로젝트는 createHttpClient만 사용하고, 필요한 경우에만 HeaderStore와 session auth를 붙입니다.
브라우저에서 공유할 header
로그인 뒤 받은 access token처럼 여러 service가 함께 써야 하는 header는HeaderStore에 보관할 수 있습니다.
commonService.ts
tsNext.js에서는 브라우저와 서버 header를 나누기
Client Component에서는 HeaderStore를 읽고, Server Component에서는 cookie를 읽도록 headersProvider를 만들 수 있습니다. 실제 프로젝트에서는 이 함수 하나가 CSR과 SSR의 차이를 처리합니다.
commonService.ts
ts401 refresh가 필요하면 callApi에 한 번 감싸기
자동 생성 service를 하나씩 수정하지 말고, 공용callApi에 session operator를 붙입니다. 그러면 모든 생성 service가 같은 토큰 조회와 refresh 규칙을 사용합니다.
commonService.ts
tsAuthorization이 없으면 token endpoint를 먼저 확인하고, 원 요청이 401이면 refresh 뒤 한 번 다시 요청합니다. refresh도 실패하면 logout endpoint를 호출하고 원래 오류를 전달합니다.
인증이 필요 없다면
공개 API나 간단한 프로젝트에서는 이것으로 충분합니다. HeaderStore와 session auth는 필수 구조가 아닙니다.