el-dakhly / smart-face-auth
Smart Face Authentication Package for Laravel
Package info
github.com/A7med12345678/smart-face-auth
Language:Blade
pkg:composer/el-dakhly/smart-face-auth
Requires
- php: ^8.0
- illuminate/support: ^9.0|^10.0|^11.0
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. يجب عليك توفير الملفات في المسار التالي داخل مشروعك الرئيسي:
- قم بإنشاء مجلد:
public/face-api-login/models/ - حمل ملفات الأوزان (Weights) من Weights Files:
tiny_face_detector_model-weights_manifest.jsonface_landmark_68_model-weights_manifest.jsonface_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 💻