اذهب إلى المحتوى

السؤال

Recommended Posts

  • 0
نشر

يمكنك تطبيق هاته المقاربة عن طريق:

  • انشاء جدول يعبر عن انموذج بيانات الدور Role وليكن باسم roles، يمتلك الخاصية permissions، فيكون مشابها لـ:
    const Role = new mongoose.Schema({
        role: {
            type: String,
            default: "user",
            unique: true
        },
        permissions: {
            type: [String]
        }
    })

    طبعا سيحتاج انموذج بيانات المستخدم هو الآخر تمثيلا للدور كأحد خصائصه او اعمدته فيكون انموذج بيانات المستخدم User كـ:

    const User = new mongoose.Schema({
        username: {
            type: String,
            required: true,
            unique: true
        },
        password: {
            type: String,
            required: true
        },
        role: {
            type: String,
            default: 'user'
        },

    الآن لن نحتاج الا انشاء الادوار اللازمة وارفاقها بالأذونات المناسبة.

  • وأخيرا، سنحتاج التحقق من امتلاك المستخدم [لدور معين] ثم [لصلاحية معينة] قبل القيام بالأكشن المعنية عن طريق استعلامات Mongo العادية أو ايا كان ما تستخدميه في قواعد البيانات. ولما لا، تنظيم العملية أكثر عن طريق جعلها كطبقة وسيطة Middleware.

  • 0
نشر

سوف أقوم بشرح الطريقة ببساطة مع أرفاق بعض المصادر المهمة حتي تكتمل الصورة لديك.

ستحتاج إلى وسيلة للتحقق من المستخدم ومن الصلاحيات الممنوحة له,  من خلال حفظ بيانات المستخدمين في قاعدة البيانات مع إضافة الدور Rol لكل مستخدم مثلا مستخدم عادي او مستخدم خارق admin.

المفهوم واحد ولكن يختلف الكود علي حسب قاعدة البيانات التي تستخدمها.

وهذه بعض المصادر المفيدة في هذا الموضوع.

مقالات أكاديمية حسوب عن Express

توثيق Node.js

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...