
Eine umfassende, vollständig konfigurierbare Authentifizierungsbibliothek. Vier Flows. Token-Speicherung, Refresh, prozessübergreifende Sperre, Integration in den Schlüsselbund. Jedes Teil enthalten, jedes Teil austauschbar.
npm install cli-authWähle eine Strategie. Die Infrastruktur ist dabei.
Die beste Lösung für Server, Docker-Shells und jede Box, auf der sich kein Browser öffnen lässt.
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();Jede Notiz unten ist ein echter Bug, ein Race-Condition oder eine Spezifikations-Klausel, die wir bereits abgedeckt haben.

Speicherung, Sperre, Fetch und die Callback-Seite sind alles Hooks. Nichts ist fest eingebaut. Klick auf einen Slot und sieh zu, wie sich die Konfiguration selbst umschreibt.
Speicherung1import { 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});Jeder OAuth 2.0 / OIDC-kompatible Server funktioniert. Setze die Bibliothek auf deine Endpunkte und sie läuft. Wir haben dies nicht nur für Logto gebaut.
CLI-Authentifizierung, ohne sie selbst schreiben zu müssen.