dcos-auth-client-lib
v1.0.1
Published
Este proyecto implementa la lógica necesaria y con buenas practicas para autenticar correctamente con la librería sls-auth-app
Maintainers
Readme
dcos-auth-client-lib
Cliente OAuth2 (Client Credentials) en TypeScript para autenticación en APIs/entornos serverless.
Instalación
npm install dcos-auth-client-libCompatibilidad
- Node.js >= 18 (usa fetch nativo). Para Node <18, provee un polyfill de fetch (por ejemplo node-fetch).
Uso (recomendado)
La forma recomendada de realizar solicitudes a APIs protegidas por OAuth2 es usar el método request del cliente. Este método se encarga de:
- Obtener el token (authenticate) cuando no existe.
- Usar el token en la solicitud (Authorization: Bearer).
- Refrescar el token si está expirado (si aplica la implementación).
Ejemplo:
import { AuthClient } from 'dcos-auth-client-lib';
const client = new AuthClient({
baseUrl: 'https://api.ejemplo.com',
clientId: process.env.CLIENT_ID!,
clientSecret: process.env.CLIENT_SECRET!,
scope: process.env.SCOPE || 'admin.rol/admin.rol.read'
});
// request maneja autenticación y refresco de token internamente
const result = await client.request<{ items: any[] }>(
'/v1/products',
'GET'
);
console.log(result.items);Notas:
- Aunque existen métodos como
authenticate(),refreshToken()ygetStoredToken(), usarrequest(...)es la forma más segura y sencilla para llamadas a recursos protegidos, ya que agrupa la lógica de token y la petición en un solo flujo. requestacepta los métodos HTTP: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH' y un body opcional endata.
API principal (resumen)
- new AuthClient(config: AuthClientConfig)
- authenticate(): Promise
- refreshToken(): Promise
- request(endpoint: string, method: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH', data?: any): Promise
- getStoredToken(): AuthToken | null
- clearToken(): void
(Revisa las definiciones en dist/*.d.ts para la firma exacta.)
Variables de entorno (recomendadas)
- API_URL — URL base de la API
- CLIENT_ID — Client ID OAuth2
- CLIENT_SECRET — Client Secret OAuth2
- SCOPE — Scopes requeridos
Usa el archivo .env.example como referencia.
Tipos
- El paquete incluye definiciones TypeScript en
dist/(typesen package.json).
Licencia
Archivo LICENSE incluido en el paquete (ISC).
