Encabezados y Autenticación de Sesión
En proyectos sin autenticación, solo use createHttpClient y agregue HeaderStore y autenticación de sesión solo cuando sea necesario.
El código de commonService.ts de esta página es parte de todo el archivo.
El código de HeaderStore, headersProvider y sessionAuth a continuación no son ejemplos de archivos independientes, sino que explican cada parte del adaptador HTTP común del proyecto (rxjsHttpService.ts/commonService.ts). Si deseas ver la estructura completa del archivo, revisa el código completo mínimo/extensible del HTTP Client antes de leer esta página.
Encabezado para compartir en el navegador
Encabezados como el token de acceso recibido después de iniciar sesión, que deben ser utilizados por varios servicios,HeaderStorese pueden almacenar en.
commonService.ts
tsEn Next.js, se separan los encabezados del navegador y del servidor.
El Componente del Cliente lee HeaderStore, y el Componente del Servidor lee las cookies. headersProviderse puede crear. En esta función, se puede separar el método de consulta de encabezados para CSR y SSR en un solo lugar.
commonService.ts
tsSi se necesita un refresh 401, envuelva una vez en callApi.
No modifique cada servicio generado automáticamente, adjunte un operador de sesión a.callApiEsto hará que todos los servicios generados utilicen las mismas reglas de consulta y refresh de token.
commonService.ts
tsSi no hay autorización, primero verifique el endpoint de token, y si la solicitud original es 401, vuelva a solicitar después del refresh. Si el refresh también falla, llame al endpoint de logout y pase el error original.
En caso de que solo se necesite sincronización de token sin refresh/retry.
Para sincronizar solo el token antes de la solicitud sin usar refresh/retry 401, utiliza withEnsureToken().
Si no se necesita autenticación,
esto es suficiente para API públicas o proyectos simples. HeaderStore y autenticación de sesión no son estructuras obligatorias.