
バッテリー同梱&完全プラガブルな認証ライブラリ。4 つのフロー、トークン保存、リフレッシュ、プロセス間ロック、キーチェーン連携。全てのパーツをハンドリングし、全てのパーツを差し替え可能です。
npm install cli-auth好みの認証戦略を選ぶだけ。面倒な部分もセットで対応。
サーバーや Docker シェルなど、ブラウザが開けない環境に最適な方式。
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();ここに挙げた全ての注意点は、実際に発生したバグ・レースコンディション・仕様ハマりの実例です。すでに対応済み。

ストレージ・ロック・ fetch ・コールバックページも全てフック可能。値をクリックするだけで設定がその場で書き換わります。
ストレージ1import { 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});OAuth 2.0/OIDC 準拠であればどのサーバーでも OK。エ ンドポイントを指定するだけで動きます。Logto 専用ではありません。