
مكتبة مصادقة شاملة وقابلة للتخصيص بالكامل. أربعة تدفقات. تخزين الرموز، تحديث الرموز، قفل للعمليات المتزامنة، تكامل مع keychain. كل جزء مُدار وقابل للتبديل.
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 يعمل. وجه المكتبة إلى نقاط النهاية الخاصة بك وستعمل. لم نبني هذا فقط لـ Logto.