تمت ترجمة هذه الوثائق تلقائيًا بواسطة الذكاء الاصطناعي.
يدعم NocoBase توسيع أنواع مصادقة المستخدم حسب الحاجة. تنقسم مصادقة المستخدم بشكل عام إلى نوعين: الأول هو تحديد هوية المستخدم داخل تطبيق NocoBase نفسه، مثل تسجيل الدخول بكلمة مرور، أو تسجيل الدخول عبر الرسائل النصية القصيرة، وما إلى ذلك؛ والآخر هو أن تقوم خدمات طرف ثالث بتحديد هوية المستخدم وإبلاغ تطبيق NocoBase بالنتيجة عبر ردود الاتصال (callbacks)، مثل طرق المصادقة OIDC و SAML وغيرها. عملية المصادقة لهذين النوعين المختلفين من طرق المصادقة في NocoBase هي كالتالي:
api.auth.signIn()، لطلب واجهة تسجيل الدخول auth:signIn، مع تمرير معرف المصادقة الحالي عبر رأس الطلب X-Authenticator إلى الواجهة الخلفية.auth:signIn بإعادة توجيه الطلب إلى نوع المصادقة المطابق بناءً على معرف المصادقة في رأس الطلب، حيث تقوم طريقة validate في فئة المصادقة المسجلة لهذا النوع بمعالجة المنطق المناسب.token) من استجابة واجهة auth:signIn، ويحفظ الرمز في التخزين المحلي (Local Storage)، ليكمل عملية تسجيل الدخول. يتم التعامل مع هذه الخطوة تلقائيًا بواسطة SDK داخليًا.
auth:getAuthUrl)، ويحمل معلومات مثل اسم التطبيق ومعرف المصادقة وفقًا للبروتوكول.auth:redirect)، وتعيد نتيجة المصادقة، بالإضافة إلى اسم التطبيق ومعرف المصادقة ومعلومات أخرى.AuthManager، وتستدعي طريقة auth.signIn() بشكل مباشر. ستقوم طريقة auth.signIn() باستدعاء طريقة validate() لمعالجة منطق التفويض.token)، يتم إعادة التوجيه (302) إلى صفحة الواجهة الأمامية، مع تمرير token ومعرف المصادقة في معلمات URL، مثل ?authenticator=xxx&token=yyy.
سنتناول لاحقًا كيفية تسجيل واجهات الواجهة الخلفية (الخادم) وواجهات المستخدم للعميل.
يوفر جوهر NocoBase تسجيل وإدارة أنواع المصادقة الموسعة. تتطلب معالجة المنطق الأساسي لتوسيع إضافة تسجيل الدخول وراثة الفئة المجردة Auth من الجوهر وتطبيق الواجهات القياسية المقابلة.
للاطلاع على واجهة برمجة التطبيقات (API) الكاملة، راجع Auth.
يسجل الجوهر أيضًا عمليات الموارد الأساسية المتعلقة بمصادقة المستخدم.
| API | الوصف |
|---|---|
auth:check | التحقق مما إذا كان المستخدم مسجلاً للدخول |
auth:signIn | تسجيل الدخول |
auth:signUp | التسجيل |
auth:signOut | تسجيل الخروج |
في معظم الحالات، يمكن لنوع مصادقة المستخدم الموسع أيضًا استخدام منطق مصادقة JWT الحالي لإنشاء بيانات اعتماد وصول المستخدم إلى واجهة برمجة التطبيقات (API). قامت فئة BaseAuth في الجوهر بتطبيق أساسي للفئة المجردة Auth، راجع BaseAuth. يمكن للإضافات وراثة فئة BaseAuth مباشرة لإعادة استخدام جزء من رمز المنطق وتقليل تكاليف التطوير.
عند تطبيق منطق مصادقة المستخدم، عادةً ما يتضمن ذلك معالجة بيانات المستخدم. في تطبيق NocoBase، يتم تعريف المجموعات ذات الصلة افتراضيًا على النحو التالي:
| مجموعة | الوصف | إضافة |
| --------------------- | -------------------------------------------------------------------------------------------------------------------- | إضافة المستخدمين (@nocobase/plugin-users) |
| authenticators | تخزين معلومات المصادقة (كيان نوع المصادقة)، بما يتوافق مع نوع المصادقة والتكوين | إضافة مصادقة المستخدم (@nocobase/plugin-auth) |
| usersAuthenticators | ربط المستخدمين والمصادقات، وحفظ معلومات المستخدم تحت المصادقة المقابلة | إضافة مصادقة المستخدم (@nocobase/plugin-auth) |
بشكل عام، تستخدم طرق تسجيل الدخول الموسعة users و usersAuthenticators لتخزين بيانات المستخدم المقابلة. فقط في الحالات الخاصة قد تحتاج إلى إضافة مجموعة جديدة بنفسك.
الحقول الرئيسية لـ usersAuthenticators هي:
| الحقل | الوصف |
|---|---|
uuid | معرف فريد للمستخدم في طريقة المصادقة هذه، مثل رقم الهاتف أو معرف مستخدم خدمة طرف ثالث |
meta | حقل JSON، معلومات أخرى يجب حفظها |
userId | معرف المستخدم |
authenticator | اسم المصادقة (معرف فريد) |
بالنسبة لعمليات استعلام المستخدم وإنشائه، يقوم نموذج بيانات authenticators المسمى AuthModel أيضًا بتغليف عدة طرق يمكن استخدامها في فئة CustomAuth عبر this.authenticator[اسم_الطريقة]. للاطلاع على واجهة برمجة التطبيقات (API) الكاملة، راجع AuthModel.
يجب تسجيل طريقة المصادقة الموسعة في وحدة إدارة المصادقة.
يتم تسجيل واجهة المستخدم للعميل عبر واجهة registerType التي يوفرها عميل إضافة مصادقة المستخدم:

إذا قامت عدة مصادقات مطابقة لنوع المصادقة بتسجيل نماذج تسجيل الدخول، فسيتم عرضها على شكل علامات تبويب (Tabs). سيكون عنوان علامة التبويب هو عنوان المصادقة الذي تم تكوينه في الواجهة الخلفية.


عادةً ما يكون هذا زر تسجيل دخول لطرف ثالث، ولكنه في الواقع يمكن أن يكون أي مكون.

إذا كنت بحاجة إلى الانتقال من صفحة تسجيل الدخول إلى صفحة التسجيل، فيجب عليك معالجة ذلك بنفسك ضمن مكون تسجيل الدخول.

الجزء العلوي هو التكوين العام للمصادقة، والجزء السفلي هو جزء نموذج التكوين المخصص الذي يمكن تسجيله.
لبدء طلبات واجهات برمجة التطبيقات المتعلقة بمصادقة المستخدم من جانب العميل، يمكنك استخدام حزمة تطوير البرمجيات (SDK) التي يوفرها NocoBase.
للاطلاع على مراجع واجهة برمجة التطبيقات (API) التفصيلية، راجع @nocobase/sdk - Auth.