تدفق مصادقة العميل

يتم مصادقة العملاء باستخدام رقم هاتفهم. OTP هو الطريقة الأساسية، مع PIN كاختصار أسرع للمستخدمين العائدين.

تسجيل دخول العميل لأول مرة

إدخال الهاتف
استلام OTP
التحقق من OTP
إنشاء PIN
تمت المصادقة

تسجيل دخول العميل العائد

إدخال الهاتف
إدخال PIN
تمت المصادقة

أو استخدام تدفق OTP مرة أخرى (متاح دائماً كبديل)

مصادقة المسؤول / مدير الملعب

مستخدمو المسؤول ومدير الملعب يتم مصادقتهم عبر البريد الإلكتروني وكلمة المرور التقليدية، ويحصلون على كوكي جلسة من جانب الخادم.

تسجيل دخول المسؤول ومدير الملعب

إدخال البريد الإلكتروني + كلمة المرور
تمت المصادقة
كوكي الجلسة
نطاق مدير الملعب: بعد المصادقة، يُقيَّد مديرو الملاعب بـ assigned_field_ids الخاصة بهم. هذا مُطبّق على مستوى الـ middleware — كل استعلام يُصفّى تلقائياً ليشمل ملاعبهم المُعيّنة فقط. هذا ليس قيداً على مستوى واجهة المستخدم؛ بل مُطبّق من الخادم.

استراتيجية التوكن المزدوجة

يستخدم النظام آليتي مصادقة لخدمة أنواع مختلفة من العملاء.

الاستراتيجية المستخدم الآلية المهلة
Session / Cookie لوحة تحكم الويب جلسة من جانب الخادم، كوكي HTTP-only 24 ساعة عدم نشاط
JWT تطبيقات الجوال توكن Bearer في ترويسة Authorization 24 ساعة عدم نشاط، آلية تجديد

تحديد المعدل

حدود المعدل تحمي من هجمات القوة الغاشمة وإساءة استخدام نظام إرسال OTP.

القاعدة الحد النافذة
إرسال OTP لكل هاتف 3 طلبات 15 دقيقة
إرسال OTP عام 10 طلبات دقيقة واحدة
محاولات التحقق من OTP 5 محاولات لكل رمز
محاولات التحقق من PIN 10 محاولات ثم قفل الحساب
محاولات تسجيل الدخول لكل IP 20 محاولة 15 دقيقة

قفل PIN

بعد 10 محاولات فاشلة لـ PIN، يُقفل الحساب. يجب على المستخدم إعادة التحقق عبر OTP لإعادة تعيين PIN. هذا يمنع هجمات القوة الغاشمة على PIN المكوّن من 6 أرقام (الذي يحتوي على 1,000,000 تركيبة ممكنة فقط).

يُسجَّل القفل في جدول login_attempts لتدقيق الأمان. يمكن للمسؤولين عرض سجل القفل في لوحة تحكم المسؤول لتحديد أنماط الهجمات المحتملة.

دورة حياة توكن JWT

نطاق مدير الملعب في التوكنات: يتضمن JWT حقل assigned_field_ids حتى يتمكن الـ API من تصفية الاستعلامات بدون بحث إضافي في قاعدة البيانات عند كل طلب. إذا تغيّرت تعيينات الملاعب، يجب على مدير الملعب إعادة المصادقة للحصول على توكن جديد بمعرّفات الملاعب المحدّثة.

اعتبارات الأمان

تشفير كلمات المرور

جميع كلمات المرور مُشفّرة بـ bcrypt (عامل التكلفة 12). لا تُخزَّن أبداً كنص صريح.

تخزين OTP

رموز OTP تُخزَّن مُشفّرة، وليس كنص صريح. حتى لو تم اختراق قاعدة البيانات، لا يمكن استخراج الرموز.

توكنات الجلسة

توكنات الجلسة عشوائية تشفيرياً بمستوى كافٍ من العشوائية لمنع التخمين أو التعداد.

أمان النقل

HTTPS مطلوب لجميع نقاط النهاية. لا يوجد بديل HTTP. CORS مُهيّأ للأصول المعروفة فقط.

HTTP غير مسموح. جميع نقاط الـ API يجب أن تُخدم عبر HTTPS فقط. طلبات HTTP يجب أن تُرفض أو تُعاد توجيهها، وليس تُخدم بصمت. CORS يجب أن يُهيّأ للسماح فقط بأصول العملاء المعروفة (نطاق لوحة تحكم المسؤول، روابط تطبيق الجوال العميقة).