Connect Flutter phone auth and Android platform

This commit is contained in:
Hamza-Ayed
2026-10-04 01:44:07 +03:00
parent 5b90da6b18
commit 98490a17e6
44 changed files with 1271 additions and 168 deletions
+3 -1
View File
@@ -114,7 +114,9 @@ UPLOAD_PRIVATE_PATH=
مخطط المحتوى يشمل GIF اختياريًا لكل تمرين مع صورة poster، تعليمات عربية، معدات/عضلات مستهدفة، مستوى صعوبة، بديل، وتنبيهات السلامة. الخطط ترتبط بجلسات يومية وتمارين موصوفة بالمجموعات/التكرارات أو المدة والراحة، مع حقول مراجع تحريرية. النشر يتم فقط للمحتوى المعتمد. لم تُدرج GIFs أو وصفات تدريب سريرية جاهزة في قاعدة البيانات بعد؛ يجب مراجعة المواد من مختص قبل نشرها ولا ينبغي تحويل خطة البداية المرئية في التطبيق إلى ادعاء توصية طبية شخصية.
أضيفت endpoints تأسيسية للمصادقة: `POST /api/v1/auth/request-otp.php`, `verify-otp.php`, `refresh.php`, و`logout.php`. يحفظ التحدي بصمة HMAC قصيرة العمر مع سقف محاولات وحدود إرسال، وتخزن refresh tokens كـSHA-256 hashes مع تدوير وكشف إعادة استخدام. Access tokens بصيغة JWT HS256 قصيرة العمر؛ الصلاحيات تعاد قراءتها من DB عند الطلب. توجد واجهة إدارة إعدادات لا يصل إليها إلا `owner` أو `content_manager` مع سجل تدقيق. محول الإرسال الحالي عقد JSON عام يتطلب `OTP_PROVIDER=generic_json` ولا يرسل إطلاقًا ما لم يُفعّل صراحة؛ ليس تكاملًا مع مزود المستخدم الفعلي بعد، ويجب مواءمة endpoint/header/body/الاستجابة مع توثيق مزوده قبل الإنتاج. لا يوجد بعد واجهة Flutter للدخول ولا ترحيل منفذ على خادم حي.
أضيفت endpoints للمصادقة: `POST /api/v1/auth/request-otp.php`, `verify-otp.php`, `refresh.php`, و`logout.php`. يحفظ التحدي بصمة HMAC قصيرة العمر مع سقف محاولات وحدود إرسال، وتخزن refresh tokens كـSHA-256 hashes مع تدوير وكشف إعادة استخدام. Access tokens بصيغة JWT HS256 قصيرة العمر؛ الصلاحيات تعاد قراءتها من DB عند الطلب. رُبطت واجهة Flutter بالدخول وحفظ refresh token في secure storage، كما ترسل مزامنة التمارين Bearer إلى public endpoints. توجد واجهة إدارة إعدادات لا يصل إليها إلا `owner` أو `content_manager` مع سجل تدقيق. محول الإرسال الحالي عقد JSON عام يتطلب `OTP_PROVIDER=generic_json` ولا يرسل إطلاقًا ما لم يُفعّل صراحة؛ ليس تكاملًا مع مزود المستخدم الفعلي بعد، ويجب مواءمة endpoint/header/body/الاستجابة مع توثيق مزوده قبل الإنتاج. لم تُنفذ migrations على DB حي أو staging بعد.
أضيفت ملفات منصة Android إلى مشروع Flutter مع صلاحيات GPS والخدمة الأمامية والإشعارات. نجح بناء APK debug وiOS Simulator محليًا، لكن هذا لا يثبت تشغيل الأجهزة أو نشر المتاجر؛ معرّف Android ما زال `com.example.fitness_tracker` تجريبيًا، ويجب تثبيت معرّف الحزمة النهائي قبل إصدار عام.
القيم أعلاه أسماء توضيحية. مزود الرسائل وموفر الذكاء الاصطناعي واسم النطاق والسياسات الرقمية لم تُحسم بعد، لذا تبقى حقولها فارغة ولا يُستخدم المثال كإعداد إنتاج.