في هذه المقالة ، سنلقي نظرة على كيفية قيام النظام الأساسي AppMaster.io بدون كود بحل مشكلة الوصول إلى البيانات لمستخدمي التطبيق.

يحدث ذلك من خلال تقديم أدوار مثل المستخدمون والمشرفون والمسؤولون والمتطلبات الأخرى. يوفر هذا الحل مزيدًا من المرونة داخل تطبيقك المبني ويتحكم في المعلومات والوصول إلى الوظائف داخل التطبيق المدمج.

ستكون المقالة مفيدة لأي شخص يريد الغوص في وظائف النظام الأساسي AppMaster.io والاطلاع على إمكانياتها من حيث إعدادات الوصول إلى البيانات حسب الأدوار.

Мodule Auth بواسطة AppMaster.io

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

Мodule Auth by AppMaster.io

إعدادات وحدة المصادقة المتوفرة:

مجموعات تسجيل الدخول - قائمة مجموعات المستخدمين التي يمكنها التسجيل ؛

SignUp - يتضمن القدرة على التسجيل في التطبيق ؛

مهلة الجلسة (بالدقائق ) - الوقت الذي تنتهي بعده جلسة المستخدم الحالية إذا كان المستخدم خاملاً (بالدقائق). الافتراضي 60 دقيقة؛

تأخير تسجيل الدخول الفاشل (بالمللي ثانية) - وقت التأخير لاستجابة الخادم في حالة محاولة تسجيل الدخول غير الناجحة (بالمللي ثانية). الافتراضي هو 0 مللي ثانية ؛

تأكيد البريد الإلكتروني مطلوب - خيار يتضمن التحقق عبر البريد الإلكتروني إذا تم تمكينه ؛

مستخدم مسجل نشط - يضبط السمة النشطة على True لكل مستخدم مسجل.

المجموعات - تسمح لك بإنشاء مجموعات مستخدمين وتعديلها.

يستخدم AppMaster.io مصمم نماذج البيانات للعمل مع النماذج.

المستخدم وجلسة المستخدم هما نموذجان تم إنشاؤهما تلقائيًا في مصمم نموذج البيانات. لا يمكن تعديل حقول نموذج البيانات المثبتة مسبقًا أو حذفها ، ولكن يمكن إضافة حقول جديدة.

User and User Session

بالنسبة لهذه النماذج ، يتم أيضًا إنشاء مجموعات عمليات الأعمال (BP) تلقائيًا.

عمليات BP التي تم إنشاؤها تلقائيًا والمرتبطة بجلسات المستخدم والمستخدم

  • نموذج المستخدم

DB: حذف المستخدم - حذف مستخدم الكائن من قاعدة البيانات عبر المعرف ؛

Delete User in AppMaster

DB: تحديث المستخدم - يعيد تعيين جميع حقول كتلة كائن المستخدم التي تم تمريرها إلى المدخلات في قاعدة البيانات وتحديثها وفقًا للقيم المحددة (لتغيير الحقول المحددة فقط ، يتم استخدام DB: Patch User block) ؛

Update User

DB: إنشاء مستخدم - يخزن في قاعدة البيانات ويعيد كائن المستخدم المحدد (لبنائه من الحقول المحددة ، استخدم كتلة تكوين المستخدم) ؛

Create User

DB: Soft Delete User - يقوم بتحديث السمة DeletedAt على كائن المستخدم ويتركها في قاعدة البيانات ؛

Soft Delete User

DB: حذف مُجمَّع للمستخدم - يأخذ كمدخلات مصفوفة من المعرفات (المعرفات) لكائنات المستخدم التي سيتم حذفها من قاعدة البيانات ؛
فشل - مجموعة من معرفات المستخدم التي لن يتم حذفها ؛

Bulk Delete User

DB: Patch User - يقوم بتحديث الحقول المحددة لكائن المستخدم في قاعدة البيانات (لإعادة تعيين جميع الحقول ، استخدم قاعدة البيانات: تحديث كتلة المستخدم) ؛

Patch User

DB: Search User - يعثر على كائن مستخدم واحد أو أكثر في قاعدة البيانات بناءً على الحقول ويعيدها ؛

Search User

DB: GetOne User - يعثر على كائن المستخدم في قاعدة البيانات بواسطة معرفه ويعيده ؛

GetOne User

توسيع المستخدم - إرجاع كافة الحقول الخاصة بكائن المستخدم المحدد ؛

Expand User

Make User - إنشاء كائن مستخدم جديد في الذاكرة من الحقول المحددة وإعادته (لحفظ الكائن الذي تم إنشاؤه في قاعدة البيانات ، استخدم DB: Create User block) ؛

Make User

  • نموذج جلسة المستخدم

DB: حذف جلسة المستخدم - يزيل كائن جلسة المستخدم من قاعدة البيانات بواسطة المعرف الذي تم تمريره ؛

Delete User Session

DB: تحديث جلسة المستخدم - إعادة تعيين جميع حقول كائن جلسة المستخدم التي تم تمريرها إلى كتلة الإدخال في قاعدة البيانات وتحديثها وفقًا للقيم المحددة (لتغيير الحقول المحددة فقط ، استخدم DB: Patch User Session) ؛

Update User Session

DB: إنشاء جلسة مستخدم - يخزن في قاعدة البيانات ويعيد كائن جلسة المستخدم المحدد (لإنشائه من الحقول المحددة ، استخدم كتلة تكوين جلسة المستخدم) ؛

Create User Session

DB: Soft Delete User Session - تحديث السمة DeletedAt لكائن جلسة المستخدم وتركها في قاعدة البيانات ؛

Soft Delete User Session

قاعدة بيانات: حذف جلسة المستخدم بالجملة - يقبل كمدخلات مجموعة من معرفات كائنات جلسة المستخدم التي سيتم حذفها من قاعدة البيانات ؛
فشل - المصفوفة تحدد مجموعة المعرفات التي لن تتم إزالتها ؛

Bulk Delete User Session

DB: Patch User Session - تحديث الحقول المحددة لكائن جلسة المستخدم في قاعدة البيانات (لإعادة تعيين جميع الحقول ، استخدم قاعدة البيانات: تحديث كتلة جلسة المستخدم) ؛

Patch User Session

DB: بحث عن جلسة المستخدم - يبحث عن كائن أو أكثر من عناصر جلسة المستخدم في قاعدة البيانات بناءً على الحقول ويعيدها ؛

Search User Session

DB: GetOne User Session - يبحث عن كائن جلسة المستخدم في قاعدة البيانات من خلال معرفه ويعيده ؛

GetOne User Session

توسيع جلسة المستخدم - تُرجع كافة الحقول الخاصة بكائن جلسة المستخدم المحدد ؛

Expand User Session

إنشاء جلسة مستخدم - إنشاء كائن جلسة مستخدم جديد في الذاكرة من الحقول المحددة وإعادته (لحفظ الكائن الذي تم إنشاؤه في قاعدة البيانات ، استخدم DB: Create User Session block) ؛

Make User Session

  • وحدة المصادقة

المؤلف: إنشاء رمز المصادقة - يُنشئ رمزًا مميزًا للمصادقة (رمز المصادقة) بطول معين ؛

Generate Auth Token

المؤلف: التسجيل - يسجل مستخدم جديد.

Auth: Registration

التفويض: التفويض - يتحقق مما إذا كان رمز المصادقة موجودًا في النظام ويعيد المستخدم المرتبط به ؛

Auth: Authorization

المصادقة: المصادقة - يتحقق من تسجيل دخول المستخدم وكلمة المرور ويعيد رمز المصادقة ؛

Auth: Authentification

المصادقة: تسجيل الخروج - يقبل رمز المصادقة وينهي جلسة المستخدم الحالية ؛

Auth: Logout

Auth: احصل على المستخدم الحالي - إرجاع بيانات المستخدم الحالي ؛

Auth: Get current user

المصادقة: إزالة المستخدم من المجموعة - يزيل مستخدمًا من المجموعة المحددة بواسطة معرفه (المحدد في إعدادات وحدة المصادقة) ؛

Auth: Remove user from group

المصادقة: إضافة مستخدم إلى المجموعة - إضافة مستخدم إلى مجموعة المستخدمين المحددة بواسطة معرفها (المحدد في إعدادات وحدة المصادقة) ؛

Auth: Add user to the group

Auth: Hash Password - تحويل سلسلة كلمة المرور إلى تجزئة ؛

Auth: Hash Password

المصادقة: استعادة كلمة المرور - يقبل اسم المستخدم وكلمة المرور الجديدة للمستخدم ، وبالتالي إعادة تعيينها ؛

Auth: Restore Password

المصادقة: تغيير كلمة المرور - يستبدل كلمة مرور المستخدم الحالية بكلمة مرور جديدة ؛

Auth: Change Password

المؤلف: دقق كلمة المرور - التحقق من كلمة المرور ومطابقة التجزئة ؛

Auth: Probe Password

يتم إنشاء نقاط نهاية وحدة المصادقة ونماذج المستخدم وجلسة المستخدم تلقائيًا عند إنشاء المشروع.

وحدة المصادقة

نوع الطلب نقطة النهاية BP متصل
post type /تسجيل خروج/ المؤلف: تسجيل الخروج
post type / auth / المؤلف: المصادقة
post type /تسجيل/ المؤلف: التسجيل
get type /تؤكد/ المؤلف: التسجيل
put type / مستخدم / تغيير كلمة المرور المؤلف: تغيير كلمة المرور
post type / المستخدم / استعادة كلمة المرور / المصادقة: استعادة كلمة المرور
get type /ملف تعريفي للمستخدم/ المؤلف: إذن

مستخدم

نوع الطلب نقطة النهاية BP متصل
put type /معرف المستخدم/ DB: تحديث المستخدم
delete type /معرف المستخدم/ DB: حذف المستخدم
get type /معرف المستخدم/ DB: مستخدم GetOne
get type /المستعمل/ DB: بحث عن المستخدم
patch type /معرف المستخدم DB: مستخدم التصحيح
post type /المستعمل/ DB: إنشاء مستخدم

جلسة المستخدم

نوع الطلب نقطة النهاية BP متصل
delete type / جلسة المستخدم /: id / DB: حذف جلسة المستخدم
get type / جلسة المستخدم /: id / DB: جلسة مستخدم GetOne
get type AppMaster / جلسة المستخدم / DB: بحث جلسة المستخدم
patch type AppMaster / جلسة المستخدم /: id / DB: جلسة مستخدم التصحيح
post type AppMaster / جلسة المستخدم / DB: إنشاء جلسة المستخدم
put type AppMaster / جلسة المستخدم /: id / DB: تحديث جلسة المستخدم

يتم استخدام رمز المصادقة كرمز مميز للجلسة الحالية للمستخدم المرخص له. في تطبيق الويب BP ، من الممكن التفاعل مع هذا الرمز المميز:

  1. يقوم Get Auth Token بإرجاع Auth لجلسة المستخدم الحالية المصادق عليها ؛
    Get Auth Token returns the Auth of the current authenticated user session
  2. يقوم Set Auth Token بالكتابة فوق رمز Auth الخاص بالجلسة الحالية للمستخدم المصرح له ؛
    Set Auth Token
  3. إزالة رمز المصادقة يحذف Auth Token الجلسة الحالية للمستخدم المصرح له ؛
    Remove Auth Token

يوضح المثال كيفية الحصول على المستخدم الحالي.

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

بعد ذلك ، يتم إنشاء نقطة نهاية لـ BP الذي تم إنشاؤه ، والذي سيتم استخدامه للاتصال بالخادم للحصول على كائن المستخدم الحالي.

حدد مجموعة المستخدمين في قسم نقاط النهاية وأنشئ طريقة طلب GET للعملية التي تم إنشاؤها حديثًا للحصول على المستخدم الحالي.

في تطبيق الويب BP ، قم بتقديم طلب إلى نقطة النهاية التي تم إنشاؤها (طلب الخادم GET / user_current) للحصول على المستخدم الحالي.

المجموعات والأذونات

يتم إنشاء مجموعات المستخدمين في إعدادات وحدة المصادقة. للانتقال إلى إعدادات الوحدة ، تحتاج إلى فتح قسم الوحدات والنقر على بطاقة الوحدة المقابلة.

تحتوي علامة التبويب "المجموعات" على قائمة بكل المجموعات الموجودة. انقر فوق إضافة عنصر جديد لإنشاء مجموعة مستخدمين جديدة. في النافذة المشروطة الجديدة ، يمكنك تخصيص المجموعة وإضافة وصف وأيقونة وأيقونة ولون تسمية وعلامة.

pMaster "data-mce-src =" https://ws.apms.io/api/_files/SRiacHHyULYU6EqLSbrp6e/download/ ">

لتحرير مجموعات المستخدمين الحالية ، تحتاج أيضًا إلى الانتقال إلى إعدادات وحدة المصادقة. للقيام بذلك ، انتقل إلى قسم الوحدات النمطية وانقر على بطاقة الوحدة المقابلة. بعد ذلك ، في علامة التبويب "المجموعات" ، ستتوفر قائمة بالمجموعات ، ولتعديلها تحتاج إلى النقر فوق رمز الإعدادات. في النافذة المشروطة الجديدة ، يمكنك تخصيص المجموعة وتغيير وصفها ورمزها ورمزها ولون التسمية والعلامة.

Editing existing user groups

لتغيير حقوق قراءة / كتابة الإدخالات في قاعدة البيانات لمجموعات مستخدمين معينة ، يتم استخدام Middleware من وحدة Auth.

في قسم نقاط النهاية ، حدد نقطة النهاية التي تريد تغيير أذونات القراءة / الكتابة الخاصة بها. انقر فوق زر الإعدادات في نقطة النهاية المطلوبة وانتقل إلى علامة التبويب الوسيطة في النافذة المشروطة التي تفتح. بعد ذلك ، بالنقر فوق تحرير الإعدادات في السطر باستخدام Token Auth Middleware ، قم بإعداد حقوق الوصول.

Access to pages in the web application

الوصول إلى الصفحات في تطبيق الويب: تحتاج إلى الانتقال إلى تطبيق الويب والنقر فوق الزر "إعدادات" في الصفحة التي تريد تقييد الوصول إليها.

في الحقل عرض للمجموعات ، يجب عليك تحديد قائمة مجموعات المستخدمين التي سيسمح لها بعرض هذه الصفحة. بشكل افتراضي ، يكون الحقل فارغًا ، ويسمح بالوصول لجميع فئات المستخدمين.

Access to pages in the web application 2

خاتمة

يعد الوصول إلى البيانات حسب الأدوار طريقة ملائمة لتنظيم تدفق المعلومات لمجموعات محددة من المستخدمين. مع النظام الأساسي بدون رمز AppMaster.io ، يمكنك اختبار هذه الميزة في نسخة تجريبية.

إذا كنت منبهرًا بالوظيفة ، فاحصل على خطتنا الاحترافية ، والتي تتضمن هذه الميزة ، وكذلك تصدير الملفات الثنائية ، والنسخ الاحتياطية المنتظمة ، ونقل المشروع ، وغير ذلك الكثير. نحن في انتظارك على منصة AppMaster.io لتنفيذ مشاريعك الأكثر جرأة.