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

المقدمة

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

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

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

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

📖 شرح بسيط

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

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

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

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

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

المشكلات:

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

حل AuthProvider:

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

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

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

كيف يعمل:

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

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

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

تدفق التوثيق

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

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

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

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

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

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

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

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

موفرو التوثيق

يدعم OneEntry طرقًا مختلفة للتوثيق:

  • البريد الإلكتروني (الأكثر شيوعًا) - البريد الإلكتروني/كلمة المرور التقليدية
  • الهاتف (SMS) - التوثيق عبر رقم الهاتف
  • اجتماعي (OAuth) - Google، Facebook، إلخ.

كل موفر له علامة (مثل email لموفر البريد الإلكتروني).

شرح الرموز ببساطة

عندما يسجل المستخدم الدخول، يحصل على رمزين:

  • رمز الوصول 🎫 - مثل تذكرة السينما (تنتهي صلاحيتها بسرعة، ~15 دقيقة)

    • يستخدم لطلبات API
    • قصير العمر لأغراض الأمان
  • رمز التحديث 🔄 - مثل بطاقة الموسم (تدوم لفترة أطول)

    • يستخدم للحصول على رموز وصول جديدة
    • يبقى صالحًا لعدة أيام/أسابيع

لماذا رمزان؟ الأمان! إذا سرق شخص ما رمز الوصول، فإنه ينتهي صلاحيتها قريبًا.

حقول النموذج

عند تسجيل أو تحديث المستخدمين، ترسل بيانات النموذج مع:

  • marker - اسم الحقل (مثل "البريد الإلكتروني"، "كلمة المرور"، "الاسم الأول")
  • type - نوع البيانات (مثل "سلسلة"، "رقم"، "صورة")
  • value - القيمة الفعلية

📊 جدول مرجعي سريع - الطرق الشائعة

الطريقةماذا تفعلمتى تستخدم
auth()يسمح لك بتوثيق المستخدمين.
changePassword()تغيير كلمة مرور المستخدم.
checkCode()التحقق من رمز تفعيل المستخدم.
generateCode()الحصول على الرمز لتفعيل المستخدم.
getActiveSessionsByMarker()الحصول على بيانات جلسات المستخدم النشطة.
getAuthProviderByMarker()الحصول على كائن موفر التوثيق بواسطة العلامة.
getAuthProviders()الحصول على جميع كائنات موفري التوثيق.
logout()تسجيل خروج حساب المستخدم.
logoutAll()تسجيل خروج حساب المستخدم على جميع الأجهزة.
oauthSignUp()تسجيل المستخدم (التفويض) عبر 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"
}
);


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