el-dakhly/smart-face-auth

Smart Face Authentication Package for Laravel

Maintainers

Package info

github.com/A7med12345678/smart-face-auth

Language:Blade

pkg:composer/el-dakhly/smart-face-auth

Statistics

Installs: 2

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

v1.0.0 2025-12-25 16:10 UTC

This package is not auto-updated.

Last update: 2026-03-06 15:33:52 UTC


README

هذا المشروع عبارة عن Package لـ Laravel تتيح تسجيل الدخول والتحقق من الهوية باستخدام بصمة الوجه (Face Recognition) باستخدام مكتبة face-api.js.

📂 هيكل الحزمة (Package Structure)

face-login-package/
├─ composer.json                 # تعريف الحزمة والاعتمادات
├─ src/
│  ├─ FaceLoginServiceProvider.php # مزود الخدمة (تسجيل الرواتس، الفيو، والميجريشن)
│  ├─ Http/
│  │  └─ Controllers/
│  │     └─ FaceLoginController.php # المنطق الخلفي (المطابقة، الجلسات، الانتهاكات)
│  ├─ Models/
│  │  ├─ FaceDescriptor.php      # مودل تخزين بصمات الوجوه (Vectors)
│  │  └─ FaceViolation.php        # مودل لتسجيل محاولات الدخول الخاطئة أو الانتحال
│  ├─ database/
│  │  └─ migrations/              # جداول قاعدة البيانات
│  ├─ resources/
│  │  └─ views/                  # صفحات تسجيل الدخول والتسجيل (Blade)
│  └─ routes/
│     └─ web.php                 # روابط الحزمة
└─ README.md                     # ملف الشرح (هذا الملف)

🚀 التثبيت والاستخدام (Installation)

1. الإضافة إلى مشروعك

إذا كانت الحزمة مخزنة محلياً، أضف هذا الجزء لملف composer.json في مشروعك الأساسي:

"repositories": [
    {
        "type": "path",
        "url": "../pacakge"
    }
],

ثم قم بتشغيل:

composer require el-dakhly/smart-face-auth:dev-main

2. تشغيل الـ Migrations

قم بإنشاء الجداول المطلوبة في قاعدة البيانات:

php artisan migrate

3. نشر الملفات (اختياري)

إذا كنت ترغب في تعديل الصفحات (Views) لتناسب تصميمك:

php artisan vendor:publish --tag=face-login-views

🛠 المتطلبات الأساسية (Prerequisites)

الحزمة تعتمد على نماذج الذكاء الاصطناعي الخاصة بـ face-api.js. يجب عليك توفير الملفات في المسار التالي داخل مشروعك الرئيسي:

  1. قم بإنشاء مجلد: public/face-api-login/models/
  2. حمل ملفات الأوزان (Weights) من Weights Files:
    • tiny_face_detector_model-weights_manifest.json
    • face_landmark_68_model-weights_manifest.json
    • face_recognition_model-weights_manifest.json
    • بالإضافة إلى ملفات الـ .bin المصاحبة لها.

🛣 الروابط (Routes)

توفر الحزمة الروابط التالية تلقائياً:

الاسم (Route Name) الرابط (URL) الطريقة (Method) الوصف
face.login.form /face-auth/login GET عرض صفحة الدخول بالوجه
face.login.submit /face-auth/login POST معالجة بيانات الوجه للدخول
face.register.form /face-auth/register GET عرض صفحة تسجيل البصمة
face.register.store /face-auth/register POST حفظ بصمات الوجه الجديدة
face.verify.session /face-auth/verify-session POST التحقق المستمر من الجلسة
face.report.violation /face-auth/report-violation POST تسجيل مخالفة (انتحال/أكثر من وجه)

💡 ملاحظات تقنية

  • المطابقة: يتم استخدام مسافة التباعد (Euclidean Distance) بمقدار 0.6. إذا كنت تريد دقة أعلى، قلل الرقم (مثلاً 0.5).
  • التوافق: الحزمة تحاول تلقائياً استدعاء دالة authenticated من الـ LoginController الأساسي في مشروعك إذا كانت موجودة لضمان توافق التحويلات (Redirects) بعد الدخول.
  • الأمان: يتم تسجيل FaceViolation تلقائياً عند اكتشاف وجه مختلف أثناء التحقق من الجلسة، ويتم تسجيل خروج المستخدم فوراً.

تم التطوير بواسطة Eng Ahmed El Dakhly - 01030326810 💻