انتقل إلى المحتوى الرئيسي

المقدمة

تسهيل عملية تسجيل الدخول وتوثيق المستخدمين.

🎯 ماذا يفعل هذا الموديل؟

يتولى موديل AuthProvider كل ما يتعلق بتوثيق المستخدمين - تسجيل الدخول، إنشاء حسابات جديدة، إدارة كلمات المرور، والبقاء متصلاً بأمان.

فكر فيه كحارس أمان لتطبيقك - يتحقق من هوية المستخدمين، يسمح للمستخدمين المصرح لهم بالدخول، ويمنع المتسللين.

📖 شرح بسيط

عندما يرغب المستخدمون في:

  • 👤 تسجيل المستخدم - إنشاء حسابات مستخدم جديدة
  • 🔐 التوثيق - تسجيل الدخول وإدارة الجلسات
  • 🔑 تغيير كلمة المرور
  • 🚪 تسجيل الخروج بأمان
  • ✉️ تحقق من البريد الإلكتروني باستخدام رموز التفعيل
  • 🔒 الأمان - تشفير كلمات المرور، إدارة الرموز

... يقوم هذا الموديل بكل العمل الشاق!

المشكلة في بناء إدارة توثيق المستخدمين من الصفر:

❌ لا يوجد تشفير لكلمات المرور
❌ لا يوجد تحقق
❌ لا يوجد فحص للتكرار
❌ لا يوجد تحقق من البريد الإلكتروني
❌ مقارنة كلمات المرور غير آمنة
❌ لا يوجد إدارة للجلسات
❌ لا يوجد تحديد للسرعة

المشكلات:

  • 🔒 غير آمن - لا يوجد تشفير لكلمات المرور، عرضة للهجمات
  • 📋 لا يوجد تحقق - يمكن تخزين بيانات سيئة
  • 🔄 لا يوجد توثيق - لا توجد جلسات أو رموز
  • 💾 لا يوجد استمرارية - فقدان البيانات عند إعادة التشغيل

حل AuthProvider:

✅ جيد - إدارة توثيق آمنة

يقوم OneEntry تلقائيًا بـ:

  • تشفير كلمة المرور بأمان
  • التحقق من تنسيق البريد الإلكتروني
  • فحص التكرارات
  • تخزين بيانات المستخدم بشكل دائم
  • توفير رموز التوثيق

كيف يعمل:

المستخدم يسجل → AuthProvider ينشئ حساب → يرسل رمز التفعيل عبر البريد الإلكتروني ✅
المستخدم يسجل الدخول → AuthProvider يتحقق من بيانات الاعتماد → يعيد رموز الوصول ✅

✨ الميزات الرئيسية

الميزةماذا تفعلمثال على الاستخدام
🔐 تسجيل المستخدمإنشاء حسابات مستخدم جديدةنموذج التسجيل
🚪 تسجيل الدخول/تسجيل الخروجتوثيق المستخدمينصفحة تسجيل الدخول
🔑 إدارة كلمات المرورتغيير وإعادة تعيين كلمات المرورتدفق نسيت كلمة المرور
🎫 إدارة الرموزإبقاء المستخدمين متصلين بأمانتجديد الجلسات تلقائيًا
✉️ تحقق من البريد الإلكترونيإرسال رموز التفعيلتحقق من البريد الإلكتروني بعد التسجيل
🌍 دعم متعدد اللغاتدعم لغات مختلفةتطبيقات دولية

يدعم النظام عدة مزودي توثيق للمستخدمين: تسجيل الدخول + كلمة المرور وOAuth.

مثال على تدفق التوثيق مع تحقق البريد الإلكتروني

1. يدخل المستخدم البريد الإلكتروني + كلمة المرور

2. يتم استدعاء auth()

3. OneEntry يتحقق من بيانات الاعتماد
(يقارن كلمات المرور المشفرة)

4. يعيد رمز التوثيق
(JWT أو رمز جلسة)

5. يتم تخزين الرمز على جانب العميل
(localStorage، ملف تعريف الارتباط، الذاكرة)

6. يتم إرسال الرمز مع الطلبات
(رأس التفويض)

7. يتم التحقق من الرمز بواسطة الخادم
(يتحقق من انتهاء الصلاحية، التوقيع)

📋 ما تحتاج لمعرفته

مزودو التوثيق

يدعم 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 admin، ثم استخدم oauthSignUp() الطريقة.


كيف أتعامل مع الأخطاء؟

قم بلف الاستدعاءات في try/catch:

try {
// نجاح!
} catch (error) {
// خطأ!
}

ماذا يحدث عندما تنتهي صلاحية رمز الوصول؟

تستخدم SDK تلقائيًا رمز التحديث للحصول على رمز وصول جديد. يبقى مستخدموك متصلين بسلاسة!


هل هو آمن؟

نعم! يستخدم OneEntry:

  • 🔒 تشفير HTTPS
  • 🎫 رموز JWT (معيار الصناعة)
  • 🔄 رموز وصول قصيرة العمر
  • 🔐 تشفير كلمات مرور آمن
  • ✉️ تحقق من البريد الإلكتروني

مزيد من المعلومات حول واجهة مستخدم الموديل https://doc.oneentry.cloud/docs/users/auth_provider


تعريف موديل AuthProvider


const { AuthProvider } = defineOneEntry(
"your-project-url", {
"token": "your-app-token"
}
);


🔗 الوثائق ذات الصلة