مقدمة
تسهيل عملية مصادقة وتسجيل المستخدمين.
مزيد من المعلومات حول واجهة مستخدم الوحدة https://doc.oneentry.cloud/docs/users/auth_provider
🎯 ماذا تفعل هذه الوحدة؟
تتعامل وحدة AuthProvider مع كل ما يتعلق بمصادقة المستخدمين — التسجيل، تسجيل الدخول، تغيير كلمة المرور، رموز تفعيل البريد الإلكتروني/SMS، OAuth، والحفاظ على الجلسة نشطة باستخدام رموز الوصول والتحديث. تدعم مجموعة أدوات البرمجة (SDK) مزودي مصادقة متعددين (تسجيل الدخول + كلمة المرور وOAuth).
🚀 بدء سريع
قم بتهيئة الوحدة من defineOneEntry:
const { AuthProvider } = defineOneEntry( "your-project-url", { "token": "your-app-token" });
قم بمصادقة مستخدم ضد مزود email وقراءة الرموز المعادة:
// Authenticate against the "email" auth provider.
const result = await AuthProvider.auth("email", {
authData: [
{ marker: "login", value: "example@oneentry.cloud" },
{ marker: "password", value: "12345" },
],
});
// On success the SDK stores the tokens automatically.
console.log(result.accessToken, result.refreshToken);
الحجة الأولى هي دائمًا علامة المزود (مثل "email"). بعد نجاح auth()، تحتفظ مجموعة أدوات البرمجة بالرموز وتقوم بتحديثها لك.
✨ المفاهيم الأساسية
| الميزة | ماذا تفعل | مثال على الاستخدام |
|---|---|---|
| تسجيل المستخدم | إنشاء حسابات مستخدمين جديدة | نموذج التسجيل |
| تسجيل الدخول / تسجيل الخروج | مصادقة المستخدمين | صفحة تسجيل الدخول |
| إدارة كلمة المرور | تغيير واستعادة كلمات المرور | تدفق نسيت كلمة المرور |
| إدارة الرموز | الحفاظ على تسجيل دخول المستخدمين بأمان | تحديث الجلسات تلقائيًا |
| التحقق عبر البريد الإلكتروني / SMS / Push | إرسال رموز التفعيل | التحقق من الحساب بعد التسجيل |
| OAuth | تسجيل الدخول الاجتماعي (Google، إلخ) | "تسجيل الدخول باستخدام Google" |
تدفق المصادقة
1. User enters email + password
↓
2. auth() is called with the provider marker
↓
3. OneEntry verifies credentials and returns access + refresh tokens
↓
4. The SDK stores the tokens and sends the access token with requests
↓
5. When the access token expires, the SDK uses the refresh token automatically
📋 ما تحتاج إلى معرفته
مزودو المصادقة
يدعم OneEntry طرقًا مختلفة للمصادقة، كل منها يتم التعرف عليه بواسطة علامة:
- البريد الإلكتروني (
email) - تسجيل دخول تقليدي + كلمة مرور - OAuth - Google، Facebook، إلخ.
يمكن تسليم رموز التفعيل عبر قنوات مختلفة (البريد الإلكتروني، SMS، أو push) عبر كائن notificationData الذي تمرره إلى signUp() — phoneSMS وphonePush هما قنوات تسليم لتلك الرموز، وليست مزودي تسجيل دخول مستقلين.
الرموز
تُعيد auth() الناجحة رمزين:
- رمز الوصول - قصير العمر، يُرسل مع طلبات API. يتم تكوين عمره في لوحة الإدارة.
- رمز التحديث - طويل العمر، يُستخدم للحصول على رموز وصول جديدة.
تقوم مجموعة أدوات البرمجة بتخزين الرموز وتحديثها لك. للحفاظ على جلسة عبر إعادة التحميل، قم بتكوين saveFunction (انظر الأسئلة الشائعة أدناه).
حقول النموذج
عند تسجيل المستخدمين، ترسل إدخالات بيانات النموذج مع:
marker- اسم الحقل (مثلemail_reg,password_reg,last_name)type- نوع البيانات (مثلstring,image)value- القيمة الفعلية
📊 جدول مرجعي سريع - الطرق الشائعة
| الطريقة | ماذا تفعل |
|---|---|
| activateUser() | تفعيل المستخدم باستخدام رمز الخدمة. |
| auth() | مصادقة مستخدم. |
| changePassword() | تغيير كلمة مرور المستخدم. |
| checkCode() | التحقق من رمز تفعيل المستخدم. |
| generateCode() | الحصول على رمز لتفعيل المستخدم. |
| getActiveSessionsByMarker() | الحصول على جلسات المستخدم النشطة. |
| getAuthProviderByMarker() | الحصول على كائن مزود مصادقة واحد بواسطة العلامة. |
| getAuthProviders() | الحصول على جميع كائنات مزود المصادقة. |
| logout() 🔐 | تسجيل الخروج من الحساب الحالي. |
| logoutAll() 🔐 | تسجيل الخروج من جميع الأجهزة. |
| oauth() | التسجيل / المصادقة عبر OAuth. |
| refresh() | تحديث رموز المستخدم. |
| signUp() | تسجيل المستخدم. |
🔐 تشير إلى الطرق التي تتطلب جلسة مستخدم مصرح بها.
❓ الأسئلة الشائعة (FAQ)
هل أحتاج إلى إدارة الرموز يدويًا؟
لا. تقوم مجموعة أدوات البرمجة بتخزين الرموز، وتحديث المنتهية صلاحيتها، وإرسال رمز الوصول مع كل طلب تلقائيًا.
كيف يمكنني الحفاظ على تسجيل دخول المستخدمين بعد تحديث الصفحة؟
قم بتكوين مجموعة أدوات البرمجة باستخدام 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، ثم استخدم طريقة oauth().
ماذا يحدث عندما تنتهي صلاحية رمز الوصول؟
تستخدم مجموعة أدوات البرمجة تلقائيًا رمز التحديث للحصول على رمز وصول جديد، لذا يبقى المستخدمون مسجلين الدخول.
🎓 أفضل الممارسات
- دائمًا مرر علامة المزود كأول حجة (مثل
"email"). - احتفظ برمز التحديث باستخدام
saveFunctionحتى تبقى الجلسات قائمة بعد إعادة التحميل. - قم بتغليف مكالمات المصادقة في try/catch وتفقد كائن الخطأ المعاد.
- استخدم
logout()/logoutAll()لإبطال الجلسات على الخادم، وليس فقط على جانب العميل.
🔗 الوثائق ذات الصلة
- وحدة المستخدمين - إدارة ملفات تعريف المستخدمين والبيانات
- وحدة النماذج - إنشاء نماذج التسجيل/تسجيل الدخول
- وحدة FormData - التعامل مع تقديم النماذج