@zentto/auth-client
v0.4.0
Published
Client SDK oficial para el microservicio Zentto Auth. Funciones tipadas: register, login (con soporte MFA challenge), loginMfa, logout, refresh, me, fetchWithRefresh.
Maintainers
Readme
@zentto/auth-client
Cliente oficial del microservicio Zentto Auth. Pensado para ser usado por todas las apps de la organización (Rental, Hotel, Medical, Tickets, Education, ERP, Inmobiliario, etc.) — centraliza la URL del servicio, los tipos de payload y los flujos típicos de autenticación.
Sin proxies en las APIs de cada app. Cada frontend llama directo al microservicio.
Instalación
npm install @zentto/auth-clientUso
import { createAuthClient } from '@zentto/auth-client';
const auth = createAuthClient({
baseUrl: process.env.NEXT_PUBLIC_AUTH_URL ?? 'https://authdev.zentto.net',
appId: 'zentto-rental', // ClientId registrado en auth."App"
});
// Registro
await auth.registerForApp({
email: '[email protected]',
password: 'secreta123',
displayName: 'Raul Gonzalez',
role: 'renter',
metadata: { phone: '0414...', idDocument: 'V12345' },
});
// Login
const session = await auth.login({
username: '[email protected]',
password: 'secreta123',
});
// Usuario actual
const me = await auth.me();
// Logout
await auth.logout();Endpoints expuestos
| Método | Path | Función del cliente |
|---|---|---|
| POST | /auth/register-for-app | registerForApp(payload) |
| POST | /auth/login | login(payload) |
| POST | /auth/logout | logout() |
| POST | /auth/refresh | refresh() |
| GET | /auth/me | me() |
El appId configurado en createAuthClient(...) se inyecta automáticamente en registerForApp y login.
URLs del microservicio
| Ambiente | URL |
|---|---|
| Producción | https://auth.zentto.net |
| Dev | https://authdev.zentto.net |
| Local | http://localhost:4600 o http://localhost:4610 |
Opciones
createAuthClient({
baseUrl: string, // URL del microservicio
appId: string, // ClientId de la app actual
withCredentials?: boolean, // Default true (envía cookies HttpOnly)
fetchImpl?: typeof fetch, // Para entornos sin global fetch (Node <18, tests)
})Manejo de errores
Todas las funciones lanzan AuthClientError con:
class AuthClientError extends Error {
status: number; // HTTP status code
body: unknown; // Cuerpo de la respuesta del servidor
}import { AuthClientError } from '@zentto/auth-client';
try {
await auth.login({ username, password });
} catch (e) {
if (e instanceof AuthClientError) {
if (e.status === 401) {
// credenciales inválidas
}
}
}CORS
El microservicio Zentto Auth está configurado para aceptar requests cross-origin desde cualquier subdominio *.zentto.net (configurado vía nginx en zentto-infra/nginx/zentto-auth.conf y vía middleware Express en zentto-auth/src/index.ts). Las cookies HttpOnly se envían automáticamente con credentials: 'include'.
Para desarrollo local agrega tu origen a la lista permitida (http://localhost:3700, etc.).
Versionado
0.1.0 — Versión inicial: register, login, logout, refresh, me.
Licencia
MIT © Zentto ERP
