المقدمة
تسهيل عملية تسجيل الدخول وتوثيق المستخدمين.
🎯 ماذا يفعل هذا الموديل؟
يتولى موديل AuthProvider كل ما يتعلق بتوثيق المستخدمين - تسجيل الدخول، التسجيل، إدارة كلمات المرور، والبقاء متصلاً بأمان.
فكر فيه كحارس أمان لتطبيقك - يتحقق من هوية المستخدمين، يسمح للمستخدمين المصرح لهم بالدخول، ويمنع المتسللين.
📖 شرح بسيط
عندما يرغب المستخدمون في:
- 👤 تسجيل المستخدم - إنشاء حسابات مستخدم جديدة
- 🔐 التوثيق - إدارة تسجيل الدخول والجلسات
- 🔑 تغيير كلمة المرور
- 🚪 تسجيل الخروج بأمان
- ✉️ تحقق من البريد الإلكتروني باستخدام رموز التفعيل
- 🔒 الأمان - تشفير كلمات المرور، إدارة الرموز
... يقوم هذا الموديل بكل العمل الشاق!
المشكلة في بناء إدارة توثيق المستخدمين من الصفر:
❌ لا يوجد تشفير لكلمات المرور
❌ لا يوجد تحقق
❌ لا يوجد فحص للتكرار
❌ لا يوجد تحقق من البريد الإلكتروني
❌ مقارنة كلمات المرور غير آمنة
❌ لا يوجد إدارة للجلسات
❌ لا يوجد تحديد لمعدل الاستخدام
المشكلات:
- 🔒 غير آمن - لا يوجد تشفير لكلمات المرور، عرضة للهجمات
- 📋 لا يوجد تحقق - يمكن تخزين بيانات سيئة
- 🔄 لا يوجد توثيق - لا توجد جلسات أو رموز
- 💾 لا يوجد استمرارية - فقدان البيانات عند إعادة التشغيل
حل AuthProvider:
✅ جيد - إدارة توثيق آمنة
يقوم OneEntry تلقائيًا بـ:
- تشفير كلمة المرور بأمان
- التحقق من تنسيق البريد الإلكتروني
- فحص التكرارات
- تخزين بيانات المستخدم بشكل دائم
- توفير رموز التوثيق
كيف يعمل:
User signs up → AuthProvider creates account → Sends activation code via email ✅
User logs in → AuthProvider verifies credentials → Returns access tokens ✅
✨ الميزات الرئيسية
| الميزة | ماذا تفعل | مثال على الاستخدام |
|---|---|---|
| 🔐 تسجيل المستخدم | إنشاء حسابات مستخدم جديدة | نموذج التسجيل |
| 🚪 تسجيل الدخول/تسجيل الخروج | توثيق المستخدمين | صفحة تسجيل الدخول |
| 🔑 إدارة كلمات المرور | تغيير وإعادة تعيين كلمات المرور | تدفق نسيت كلمة المرور |
| 🎫 إدارة الرموز | إبقاء المستخدمين متصلين بأمان | تحديث الجلسات تلقائيًا |
| ✉️ تحقق من البريد الإلكتروني | إرسال رموز التفعيل | تحقق من البريد الإلكتروني بعد التسجيل |
| 🌍 دعم متعدد اللغات | دعم لغات مختلفة | التطبيقات الدولية |
يدعم النظام عدة مزودي توثيق للمستخدمين: تسجيل الدخول + كلمة المرور وOAuth.
مثال على تدفق التوثيق مع تحقق البريد الإلكتروني
1. User enters email + password
↓
2. auth() called
↓
3. OneEntry verifies credentials
(Compares hashed passwords)
↓
4. Returns authentication token
(JWT or session token)
↓
5. Token stored client-side
(localStorage, cookie, memory)
↓
6. Token sent with requests
(Authorization header)
↓
7. Token validated by server
(Checks expiration, signature)
📋 ما تحتاج لمعرفته
مزودو التوثيق
يدعم OneEntry طرقًا مختلفة للتوثيق:
- البريد الإلكتروني (الأكثر شيوعًا) - البريد الإلكتروني/كلمة المرور التقليدية
- الهاتف (SMS) - التوثيق عبر رقم الهاتف
- اجتماعي (OAuth) - Google، Facebook، إلخ.
كل مزود له علامة (مثل، email لمزود البريد الإلكتروني).
شرح الرموز ببساطة
عندما يقوم المستخدم بتسجيل الدخول، يحصل على رمزين:
-
رمز الوصول 🎫 - مثل تذكرة السينما (تنتهي صلاحيتها بسرعة)، يتم تكوينها في لوحة الإدارة
- يستخدم لطلبات API
- قصيرة العمر لأغراض الأمان
-
رمز التحديث 🔄 - مثل بطاقة الموسم (تدوم لفترة أطول)
- يستخدم للحصول على رموز وصول جديدة
- يبقى صالحًا لعدة أيام/أسابيع
لماذا رمزان؟ الأمان! إذا سرق شخص ما رمز الوصول، فإنه ينتهي صلاحيتها قريبًا.
حقول النموذج
عند تسجيل أو تحديث المستخدمين، ترسل بيانات النموذج مع:
marker- اسم الحقل (مثل، "البريد الإلكتروني"، "كلمة المرور"، "الاسم الأول")type- نوع البيانات (مثل، "نص"، "رقم"، "صورة")value- القيمة الفعلية
📊 جدول مرجعي سريع - الطرق الشائعة
| الطريقة | ماذا تفعل |
|---|---|
| auth() | يسمح لك بتوثيق المستخدمين. |
| changePassword() | تغيير كلمة مرور المستخدم. |
| checkCode() | التحقق من رمز تفعيل المستخدم. |
| generateCode() | الحصول على الرمز لتفعيل المستخدم. |
| getActiveSessionsByMarker() | الحصول على بيانات جلسات المستخدم النشطة. |
| getAuthProviderByMarker() | الحصول على كائن مزود التوثيق بواسطة العلامة. |
| getAuthProviders() | الحصول على جميع كائنات مزودي التوثيق. |
| logout() | تسجيل خروج حساب المستخدم. |
| logoutAll() | تسجيل خروج حساب المستخدم على جميع الأجهزة. |
| oauth() | تسجيل المستخدم (التفويض) عبر OAUTH. |
| refresh() | تحديث رموز المستخدم. |
| signUp() | تسجيل المستخدم. |
❓ الأسئلة الشائعة (FAQ)
هل أحتاج إلى إدارة الرموز يدويًا؟
لا! تتولى SDK إدارة الرموز تلقائيًا. فقط استدعِ الطرق وستقوم SDK بالعناية بـ:
- تخزين الرموز
- تحديث الرموز المنتهية
- إرسال الرموز مع طلبات API
كيف يمكنني إبقاء المستخدمين متصلين بعد تحديث الصفحة؟
قم بتكوين SDK باستخدام saveFunction:
const { AuthProvider } = defineOneEntry("your-url", {
token: "your-token",
auth: {
refreshToken: localStorage.getItem('refreshToken'),
saveFunction: (token) => localStorage.setItem('refreshToken', token)
}
});
ما الفرق بين تسجيل الدخول والبريد الإلكتروني؟
login- يمكن أن يكون البريد الإلكتروني أو اسم المستخدم (أيًا كان ما يقبله مزود التوثيق الخاص بك)email- دائمًا عنوان بريد إلكتروني
هل يمكنني استخدام تسجيل الدخول الاجتماعي (Google، Facebook)؟
نعم! قم بإعداد مزودي OAuth في لوحة إدارة OneEntry، ثم استخدم طريقة oauthSignUp().
كيف أتعامل مع الأخطاء؟
قم بتغليف الاستدعاءات في try/catch:
try {
// Success!
} catch (error) {
// Error!
}
ماذا يحدث عندما تنتهي صلاحية رمز الوصول؟
تستخدم SDK تلقائيًا رمز التحديث للحصول على رمز وصول جديد. يبقى مستخدموك متصلين بسلاسة!
هل هو آمن؟
نعم! يستخدم OneEntry:
- 🔒 تشفير HTTPS
- 🎫 رموز JWT (معيار الصناعة)
- 🔄 رموز وصول قصيرة العمر
- 🔐 تشفير كلمات مرور آمن
- ✉️ تحقق من البريد الإلكتروني
مزيد من المعلومات حول واجهة مستخدم الموديل https://doc.oneentry.cloud/docs/users/auth_provider
تعريف موديل AuthProvider
const { AuthProvider } = defineOneEntry( "your-project-url", { "token": "your-app-token" });
🔗 الوثائق ذات الصلة
- وحدة المستخدمين - إدارة ملفات تعريف المستخدمين والبيانات
- وحدة النماذج - إنشاء نماذج التسجيل/تسجيل الدخول
- وحدة بيانات النموذج - التعامل مع تقديمات النموذج