POST/api/auth/login
يسجّل دخول المستخدم ويُصدر JWT للجلسة بالإضافة إلى Refresh-Token. هذه هي الطريقة الوحيدة للحصول على Token وصول صالح للوحة التحكم — لا يوجد نظام منفصل لمفاتيح API للمطورين.
المصادقة والأمان
لا يلزم أي مصادقة
تقييد تدريجي لمحاولات القوة الغاشمة لكل بريد إلكتروني/اسم مستخدم (authGuard) -- تؤدي 10 محاولات فاشلة خلال 5 دقائق إلى تأخير متزايد، وابتداءً من 30 محاولة إلى الحظر.
متطابق القوة: لا
المعلمات
identifier(body, string، إلزامي)— عنوان البريد الإلكتروني أو اسم المستخدمpassword(body, string، إلزامي)— كلمة المرورمثال طلب
{"identifier":"user@example.com","password":"كلمة مرورك"}مثال استجابة
{"ok":true,"token":"<JWT، صالح لمدة 12 ساعة>","refreshToken":"<Refresh-Token، صالح لمدة 7 أيام، قابل للاستخدام مرة واحدة>","user":{"id":"...","tenant_id":"...","email":"user@example.com","role":"EMPLOYEE","roles":[],"permissions":[],"isMasterAdmin":false}}رموز الأخطاء
401 INVALID_CREDENTIALS — البريد الإلكتروني/اسم المستخدم أو كلمة المرور غير صحيحة.429 RATE_LIMIT_EXCEEDED — عدد كبير جدًا من المحاولات الفاشلة لهذا المعرّف أو عنوان IP هذا.إثبات الاختبار المباشر
تم التحقق مباشرةً (live) من حالة النجاح (200، JWT حقيقي + Refresh-Token حقيقي) والحالة السلبية (401 عند كلمة مرور خاطئة) مقابل بيئة اختبار معزولة.