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 عند كلمة مرور خاطئة) مقابل بيئة اختبار معزولة.

المصادقة