Skip to main content

title: تسجيل الدخول description: “قم بتسجيل الدخول إلى FailproofAI من سطر الأوامر لتفعيل التنبيهات والميزات المخصصة”

failproofai auth login    # email + one-time code
failproofai auth logout   # revoke this session
failproofai auth whoami   # print the signed-in identity
صيغة العلم القديم --login / --logout / --whoami لا تزال مقبولة كاسم مستعار للتوافق مع الإصدارات السابقة. المصادقة اختيارية. السياسات والعرض البياني وصفحة /audit وكل ميزة محلية أخرى تعمل بالطريقة ذاتها سواء قمت بتسجيل الدخول أم لا. واجهة تسجيل الدخول موجودة حتى تتمكن الميزات التي تحتاج إلى هوية مستقرة (تنبيهات إعادة التدقيق اليوم، والمزيد في المستقبل) من وجود مكان تستند إليه.

تدفق تسجيل الدخول

failproofai auth login
يطلب بريدك الإلكتروني، ويرسل رمز لمرة واحدة مكون من 6 أرقام إلى هذا العنوان، ويطلب الرمز، وعند النجاح يكتب ~/.failproofai/auth.json (mode 0600). نفس الجلسة تصبح مرئية بعد ذلك في العرض البياني داخل التطبيق — النقر على [ set a reminder ] على /audit سيظهرك كمسجل دخول. يعرض العرض البياني نفس التدفق كمربع حوار مشروط على /audit للمستخدمين الذين لا يستخدمون سطر الأوامر.

تسجيل الخروج

failproofai auth logout
يلغي الجلسة الحالية على الخادم ويحذف ~/.failproofai/auth.json. إذا كان خادم api غير قابل للوصول، يتم إزالة الملف المحلي على أي حال — النية المحلية لتسجيل الخروج تفوز دائماً.

فحص الهوية

failproofai auth whoami
يطبع <email> (<user uuid>) ويخرج 0 عندما توجد جلسة صحيحة، أو not signed in ويخرج 1 بخلاف ذلك. ينعش رمز الوصول بصمت في الخلفية إذا كان على بعد دقيقة واحدة من انتهائه الصلاحية.

تنبيه إعادة التدقيق المستمر

عندما تنقر على [ set a reminder ] على صفحة /audit (أو تسجل الدخول عبر المربع الحواري الذي يحرسه الزر)، يكتب العرض البياني ملف مرافق صغير على ~/.failproofai/next-audit.json:
{
  "next_audit_at": 1780765200,
  "user_email": "you@example.com",
  "set_at": 1780160574
}
هذا الملف محدد للبريد الإلكتروني الذي تم تعيينه له — تبديل جلسة سطر الأوامر إلى حساب مختلف يخفي أي تنبيه ينتمي للمستخدم السابق. الإزاحة الافتراضية هي 7 أيام، قابلة للتكوين لاحقاً عندما يتم إطلاق جدول المهام. تم الإنشاء برمز 0600 مثل auth.json. نقطة نهاية /api/auth/reminder للعرض البياني تعرض GET (قراءة)، POST (تعيين / إعادة جدولة)، و DELETE (مسح) وتتطلب جلسة نشطة.

ما في ~/.failproofai/auth.json

{
  "access_token": "eyJhbGc…",
  "refresh_token": "9ede3e…",
  "access_expires_at": 1780160574,
  "refresh_expires_at": 1782748974,
  "user": { "id": "<uuid>", "email": "you@example.com" }
}
تم الإنشاء برمز 0600 (قراءة/كتابة خاصة بالمالك). رمز الوصول هو JWT مدة HS256 بمدة ساعة واحدة؛ رمز التحديث هو سلسلة عشوائية معتمة بحجم 256 بت يخزنها الخادم كـ SHA-256(token). يتم الكشف عن إعادة تشغيل رمز التحديث من جانب الخادم وإلغاء كل جلسات المستخدم.

متغيرات البيئة

المتغيرالافتراضيالغرض
FAILPROOF_API_URLhttps://api.befailproof.aiتجاوز عنوان URL الأساسي لخادم api. مفيد للتطوير المحلي مقابل خادم api مستضاف ذاتياً.
FAILPROOFAI_AUTH_DIR~/.failproofaiتجاوز حيث يتم تخزين auth.json. في الأساس للاختبارات.
انظر متغيرات البيئة للقائمة الكاملة.

استكشاف الأخطاء

“لم يتمكن من الوصول إلى خادم api” — لا يمكن لسطر الأوامر فتح اتصال TCP بـ FAILPROOF_API_URL. تحقق من شبكتك، أو عيّن FAILPROOF_API_URL إذا كنت تقوم بتشغيل خادم api مستضاف ذاتياً. “تم تجاوز حد المعدل” — عدد كبير جداً من محاولات تسجيل الدخول في نافذة 15 دقيقة لهذا البريد الإلكتروني (5/بريد) أو IP (20/IP)، أو فترة انتظار إعادة إرسال 30 ثانية بعد الطلب السابق للبريد الإلكتروني ذاته. تتضمن رسالة الخطأ نافذة إعادة المحاولة بالثواني. تم رفض الرمز — كانت OTP خاطئة أو انتهت صلاحيتها أو ضربت الصف قفل التخمين الخاطئ 5 مرات. شغّل failproofai auth login مرة أخرى لطلب رمز جديد.