
功能齐全、可完全插拔的认证库。支持四种流程。包括令牌存储、自动刷新、跨进程锁定、密钥链集成。每个环节都已处理,每个环节都可替换。
npm install cli-auth选择一套方案。底层全部帮你搞定。
适合服务器、Docker Shell,或没法直接打开浏览器的环境。
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();下面每一个点都是我们已经踩过的真实 bug、竞态风险或规范陷阱。

存储、锁定、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 标准的服务器都能对接。指向你的 endpoint 即可。我们可不是只为 Logto 而生。