
Una biblioteca de autenticación totalmente funcional, totalmente conectable. Cuatro flujos. Almacenamiento de tokens, refresco, bloqueo entre procesos, integración con el llavero. Todo gestionado, todo intercambiable.
npm install cli-authElige una estrategia. La infraestructura va incluida.
El que necesitas para servidores, shells Docker y cualquier máquina donde abrir un navegador no sea una opción.
1import { createCliAuth, keyringStorage } from 'cli-auth';2import { Entry } from '@napi-rs/keyring';3 4const auth = createCliAuth({5 strategy: 'device-code',6 provider: {7 metadata: {8 deviceAuthorizationEndpoint: 'https://your-tenant.logto.app/oidc/device/auth',9 tokenEndpoint: 'https://your-tenant.logto.app/oidc/token',10 },11 },12 clientId: 'your-cli-client',13 storage: keyringStorage({ entry: new Entry('your-cli', 'tokens') }),14 scope: 'openid offline_access',15});16 17await auth.login({18 onAuthorization: ({ userCode, verificationUri }) => {19 console.log(`Visit ${verificationUri} and enter ${userCode}`);20 },21});22 23const accessToken = await auth.getToken();Cada apunte es un bug real, una condición de carrera o una cláusula de la especificación que ya hemos resuelto.

Almacenamiento, bloqueo, fetch y la página de callback son todos hooks. Nada está codificado fijamente. Haz clic en una ranura y verás cómo la configuración se actualiza sola.
almacenamiento1import { createCliAuth } from 'cli-auth';2 3const auth = createCliAuth({4 strategy: 'authorization-code',5 provider: { /* ... */ },6 clientId: 'your-cli-client',7 storage: keyringStorage({ entry: new Entry('your-cli', 'tokens') }),8});Funciona con cualquier servidor OAuth 2.0 / OIDC compatible. Apunta la librería a tus endpoints y funcionará. No lo construimos sólo para Logto.
Autenticación CLI sin tener que implementarla tú mismo.