قارورة هو إطار خفيف الوزن ومرن لإنشاء تطبيقات الويب في بيثون. يسمح لك بإنشاء مواقع ويب وظيفية وأنيقة ، بما في ذلك القدرة على إضافة وظيفة تفويض المستخدم. في هذه المقالة ، سنلقي نظرة على دليل مفصل حول كيفية تنفيذ التفويض على الموقع عبر القارورة.
التفويض هو عملية التحقق من صحة المستخدم عند الوصول إلى موارد الموقع المحمية. يتيح لك ذلك منح حقوق وصول مختلفة للمستخدمين اعتمادا على دورهم أو امتيازاتهم. يوفر إطار ويب قارورة العديد من الأدوات التي ستساعدنا في تنفيذ التفويض بالتفصيل وفعالية.
تتمثل إحدى الخطوات الأولى في تنفيذ التفويض في إنشاء نموذج مستخدم. سيكون نموذج المستخدم عبارة عن جدول في قاعدة بيانات يقوم بتخزين معلومات حول المستخدمين ، مثل المعرف واسم المستخدم وتجزئة كلمة المرور الخاصة بهم. للعمل مع قاعدة البيانات ، سوف نستخدم سكلالشيمي ، مكتبة أورم شعبية (كائن—رسم الخرائط العلائقية) لبيثون.
من أجل تبسيط عملية إنشاء نموذج المستخدم ، قارورة يوفر لنا فئة سيرميكسين القياسية ، والتي تحتوي بالفعل على العديد من المجالات والأساليب اللازمة لتنفيذ التفويض. يمكننا أن نرث نموذج المستخدم الخاص بنا من هذه الفئة وإضافة الحقول التي نحتاجها إليها.
- تركيب قارورة
- إنشاء قاعدة بيانات
- تسجيل مستخدم
- المصادقة
- حماية الطريق
- 1. التحقق من المصادقة
- 2. نموذج الوصول القائم على الدور
- 3. أذونات المستخدم
- تسجيل الخروج من النظام
- سؤال وجواب
- ما حزم أحتاج إلى تثبيت للعمل مع قارورة?
- كيف يمكنني إنشاء نموذج لتسجيل الدخول إلى الموقع عبر قارورة?
- كيف يمكنني إعداد إذن عبر قارورة?
- كيف يمكنني إنشاء صفحة تسجيل الدخول?
تركيب قارورة
لبدء العمل مع قارورة ، تحتاج إلى تثبيت هذا الإطار على جهاز الكمبيوتر الخاص بك. دعونا نلقي نظرة فاحصة على كيفية القيام بذلك:
الخطوة 1: تثبيت بايثون
قبل تثبيت القارورة ، تحتاج إلى التأكد من تثبيت بايثون على جهاز الكمبيوتر الخاص بك. قارورة يدعم بيثون 3.6 والإصدارات الأعلى. إذا كنت قد قمت بالفعل بتثبيت بايثون ، فانتقل إلى الخطوة التالية.
إذا كان بيثون مفقود على جهاز الكمبيوتر الخاص بك ، تحتاج إلى تثبيته. للقيام بذلك ، يمكنك زيارة موقع بايثون الرسمي (https://www.بايثون .المؤسسة/) وتحميل المثبت لنظام التشغيل الخاص بك. بعد التنزيل ، قم بتشغيل المثبت واتبع التعليمات.
الخطوة 2: تثبيت فيرتوالينف
فمن المستحسن استخدام بيئة افتراضية للعمل مع قارورة. سيؤدي هذا إلى عزل المشروع عن تثبيت نظام بايثون وتجنب تعارضات التبعية. لإنشاء بيئة افتراضية ، يمكنك استخدام أداة فيرتوالينف.
تثبيت فيرتوالينف عن طريق تشغيل الأمر التالي على سطر الأوامر:
بيب تثبيت فيرتوالينف
الخطوة 3: إنشاء بيئة افتراضية
بعد تثبيت فيرتوالينف ، إنشاء بيئة افتراضية جديدة. للقيام بذلك ، قم بتشغيل الأمر التالي:
فيرتوالينف فينف
سيقوم هذا الأمر بإنشاء مجلد جديد فينف حيث سيتم وضع البيئة الافتراضية.
الخطوة 4: تفعيل البيئة الافتراضية
لتنشيط البيئة الافتراضية ، قم بتشغيل الأمر التالي في سطر الأوامر:
- مصدر فينف / بن / تفعيل
بعد تنفيذ هذا الأمر ، يجب أن ترى أن اسم البيئة الافتراضية الخاصة بك يظهر في سطر الأوامر (على سبيل المثال ،(فينف) C:\path\to\project >). هذا يعني أن البيئة الافتراضية نشطة وجاهزة للاستخدام.
الخطوة 5: تركيب قارورة
لتثبيت القارورة في بيئة افتراضية نشطة ، قم بتشغيل الأمر التالي:
بيب تثبيت قارورة
سيقوم هذا الأمر بتثبيت القارورة وتبعياتها.
تهانينا ، تم تثبيت قارورة بنجاح على جهاز الكمبيوتر الخاص بك!
إنشاء قاعدة بيانات
لتنفيذ التفويض على الموقع عبر قارورة ، سنحتاج إلى إنشاء قاعدة بيانات سيتم تخزين بيانات المستخدم فيها. للقيام بذلك ، سوف نستخدم سكليتي ، قاعدة بيانات علائقية خفيفة الوزن وسهلة الاستخدام.
الخطوة الأولى هي إنشاء نموذج بيانات للمستخدمين. سنقوم بتخزين معلومات حول كل مستخدم ، بما في ذلك اسمه وعنوان بريده الإلكتروني وتجزئة كلمة المرور. للقيام بذلك ، قم بإنشاء فئة المستخدم:
فئة المستخدم (ديسيبل.نموذج):
معرف = ديسيبل.العمود (ديسيبل.عدد صحيح ، مفتاح أساسي=صحيح)
اسم المستخدم = ديسيبل.العمود (ديسيبل.String(80), unique=True, nullable=False)
email = db.Column(db.String(120), unique=True, nullable=False)
password_hash = db.Column(db.String(128), nullable=False)
- В данной модели мы определяем три поля: id — уникальный идентификатор пользователя, username — имя пользователя, email — адрес электронной почты пользователя и password_hash — хэш пароля пользователя. بعد تحديد نموذج البيانات ، يمكننا إنشاء الجدول المقابل في قاعدة البيانات.
- لإنشاء جدول مستخدم ، قم بتشغيل الأوامر التالية:
- انتقل إلى موجه الأوامر لنظام التشغيل الخاص بك.
انتقل إلى مجلد المشروع الخاص بك.- قم بتشغيل وحدة تحكم القارورة التفاعلية:
قذيفة قارورة- استيراد كائن قاعدة البيانات ونموذج المستخدم:
من التطبيق استيراد ديسيبل ، المستخدمإنشاء جدول مستخدم:
ديسيبل.إنشاء كل ()
بعد تنفيذ هذه الأوامر ، سيتم إنشاء جدول مستخدم في قاعدة البيانات. الآن يمكننا إضافة وتعديل وحذف المستخدمين في هذا الجدول عبر قارورة.
في هذا القسم ، نظرنا في كيفية إنشاء قاعدة بيانات وجدول مستخدم ضروري لتنفيذ التفويض على الموقع عبر قارورة. بعد ذلك ، سوف نستكشف كيفية إضافة المستخدمين والتحقق منهم أثناء التسجيل والمصادقة.
تسجيل المستخدم
2. بعد إنشاء القالب ، تحتاج إلى إنشاء المسار المناسب في تطبيق القارورة الخاص بك. للقيام بذلك ، استخدم
التطبيق@.ديكور الطريق
. على سبيل المثال:
@التطبيق.الطريق ('/تسجيل ' ، طرق=['الحصول على' ، 'آخر'])
سجل مواطنه():
إذا طلب.طريقة = = 'مشاركة':
# معالجة بيانات نموذج التسجيل
عودة إعادة توجيه (url _ ل ('تسجيل الدخول'))
4. بعد المعالجة الناجحة لبيانات النموذج ، يمكنك إعادة توجيه المستخدم إلى صفحة تسجيل الدخول باستخدام
وظيفة إعادة التوجيه. على سبيل المثال:
عودة إعادة توجيه (url _ ل ('تسجيل الدخول'))
5. لا تنس إضافة رابط إلى صفحة التسجيل على موقعك حتى يتمكن المستخدمون من الانتقال إليها. يمكنك القيام بذلك ، على سبيل المثال ، في قائمة التنقل أو في الصفحة الرئيسية.
6. عند إنشاء نموذج التسجيل ، تأكد من استخدام حماية سرف. للقيام بذلك ، يمكنك إضافة حقل سرف خاص إلى النموذج الخاص بك والتحقق من قيمته عند معالجة الطلب. سيساعد هذا في حماية تطبيقك من هجمات التزوير عبر المواقع.
يعد تسجيل المستخدم جزءا مهما من أي تطبيق ويب. من خلال إنشاء ميزة تسجيل القارورة ، فإنك تسمح للمستخدمين بإنشاء حساب واستخدامه للوصول إلى ميزات إضافية لموقعك.
المصادقة
- المصادقة هي عملية التحقق من هوية المستخدم عند الوصول إلى الموارد المحمية. في سياق تطبيقات الويب ، تسمح المصادقة للمستخدم بتسجيل الدخول باستخدام بيانات الاعتماد مثل اسم المستخدم وكلمة المرور.
- يوفر قارورة عدة طرق لتنفيذ المصادقة على موقع على شبكة الانترنت:
- المصادقة المستندة إلى الجلسة: عندما يقوم المستخدم بتسجيل الدخول ، يتم تعيين معرف جلسة فريد له ، والذي يستخدم للمصادقة أثناء الطلبات اللاحقة.
المصادقة المستندة إلى الرمز المميز: يتلقى المستخدم رمزا مميزا فريدا عند تسجيل الدخول ، والذي يتم استخدامه بعد ذلك للمصادقة في الطلبات اللاحقة.
- المصادقة باستخدام خدمات الجهات الخارجية: يمكن للمستخدم تسجيل الدخول باستخدام حساب وسائط اجتماعية أو خدمات ويب أخرى.
- عند تطوير تطبيق ويب مع مصادقة قارورة ، ينبغي النظر في التدابير الأمنية التالية:
- تخزين كلمة المرور: يجب تخزين كلمات مرور المستخدم في شكل مشفر لمنع إمكانية الكشف عنها في حالة تسرب قاعدة البيانات. يوفر قارورة أدوات للعمل بشكل آمن مع تجزئة كلمة المرور.
- الحماية من هجمات القوة الغاشمة: لمنع هجمات القوة الغاشمة ، يجب تطبيق حد لعدد محاولات كلمة المرور.
الحماية من هجمات التزوير عبر المواقع: هجمات سرف يمكن أن يسبب ضررا خطيرا للنظام ، لذلك فمن المستحسن استخدام آليات الحماية ضد مثل هذه الهجمات.
تسجيل خروج المستخدم التلقائي: لمنع الوصول غير المصرح به ، يجب أن يكون لدى النظام آلية لتسجيل خروج المستخدم التلقائي بعد قدر معين من عدم النشاط.
عند اختيار طريقة المصادقة وتنفيذ تدابير الأمان ، يجب أن تأخذ في الاعتبار متطلبات وميزات تطبيق الويب الذي يتم تطويره.
حماية الطريق
من الوحدة
قوارب_تسجيل الدخول
. فإنه يتحقق تلقائيا إذا تم مصادقة المستخدم. إذا لم يتم تسجيل دخول المستخدم ، فسيتم إعادة توجيهه إلى صفحة تسجيل الدخول.
من قارورة استيراد قارورة
من قنينة _ تسجيل الدخول استيراد تسجيل الدخول_مطلوب
التطبيق = قارورة (__اسم__)
@التطبيق.الطريق ('/سر')
تضمين التغريدة المطلوبة
مواطنه سر_صفحة():
عودة "الصفحة السرية"
في المثال أعلاه ، الطريق" / سر " متاح فقط للمستخدمين المصادق عليهم. إذا لم تتم مصادقة المستخدم ، فسيتم إعادة توجيهه إلى صفحة تسجيل الدخول.
لتنفيذ نموذج وصول قائم على الدور ، يمكنك استخدام مصمم ديكور
@دور_مطلوب
. يتحقق هذا الديكور مما إذا كان المستخدم لديه الدور المطلوب للوصول إلى المسار.
من قارورة استيراد قارورة
من قوارة_أدوار استيراد المستخدم_مطلوب
التطبيق = قارورة (__اسم__)
@التطبيق.الطريق ('/المشرف')
<url> / <url>
مواطنه المشرف_صفحة ():
عودة "صفحة المشرف"
في المثال أعلاه ، يتوفر مسار" / المسؤول "فقط للمستخدمين الذين لديهم دور" المسؤول". إذا لم يكن لدى المستخدم الدور المطلوب ، فسيتم رفض الوصول إليه.
يمكنك استخدام الديكور لتنفيذ أذونات مخصصة
تضمين التغريدة المطلوبة
. يتحقق هذا الديكور مما إذا كان المستخدم لديه الإذن اللازم للوصول إلى المسار.
من قارورة استيراد قارورة
من قوارة_مستخدم استيراد التصريح_مطلوب
التطبيق = قارورة (__اسم__)
@التطبيق.الطريق ('/إعدادات')
إذن _مطلوب ('تحرير _إعدادات')
إعدادات مواطن_صفحة():
عودة "صفحة الإعدادات"
في المثال أعلاه ، يكون مسار" / الإعدادات "متاحا فقط للمستخدمين الذين لديهم إذن" تعديل الإعدادات". إذا لم يكن لدى المستخدم الإذن اللازم ، فسيتم رفض الوصول إليه.
في الختام ، تعد حماية المسار جانبا مهما من تطوير تطبيقات الويب بترخيص. عند اختيار طريقة حماية الطريق ، يجب أن تأخذ في الاعتبار متطلبات التطبيق الخاص بك ومستوى الأمان الذي تريد توفيره.
تسجيل الخروج من النظام
- لكي يتمكن المستخدم من تسجيل الخروج بأمان بعد تسجيل الدخول إلى الموقع ، يمكن استخدام آلية الجلسة في قارورة. الجلسة هي طريقة لحفظ بيانات حالة المستخدم بين الطلبات.
- يمكن استخدام النهج التالي لتنفيذ تسجيل الخروج:
- أضف رابطا أو زر" تسجيل الخروج " إلى صفحة المستخدم حيث تم تسجيل الدخول.
في معالج هذا الرابط أو الزر ، تحتاج إلى حذف البيانات حول المستخدم الحالي من الجلسة.
أعد توجيه المستخدم إلى صفحة بها رسالة خروج ناجحة.
نموذج التعليمات البرمجية لتنفيذ الخروج:
من جلسة استيراد القارورة ، إعادة التوجيه ، url _
@التطبيق.الطريق ('/الخروج')
مواطنه الخروج():
جلسة.البوب ('معرف المستخدم' ، لا شيء)
عودة إعادة توجيه (url _ ل ('مؤشر'))
في هذا المثال ، نقوم بإزالة مفتاح 'معرف المستخدم' من جلسة المستخدم وإعادة توجيهه إلى الصفحة الرئيسية ، حيث سترى رسالة خروج ناجحة.
يرجى ملاحظة أن أمان التطبيق الخاص بك يعتمد أيضا على التكوين الصحيح للجلسات. على سبيل المثال ، بعد تسجيل الخروج ، يجب ألا يتمكن المستخدم من العودة إلى الصفحات المحمية دون إعادة التفويض.
سؤال وجواب
ما حزم أحتاج إلى تثبيت للعمل مع قارورة?
للعمل مع قارورة ، سوف تحتاج إلى تثبيت عدة حزم مثل قارورة ، قارورة تسجيل الدخول ، قارورة وتف و قارورة بكريبت. يمكنك تثبيتها عن طريق تشغيل الأمر "تثبيت النقطة" باسم الحزمة.
كيف يمكنني إنشاء نموذج لتسجيل الدخول إلى الموقع عبر قارورة?
لإنشاء نموذج لتسجيل الدخول إلى الموقع عبر قارورة ، يمكنك استخدام ملحق قارورة وتف. تحتاج إلى إنشاء فئة لوغينفورم التي ترث من فئة فلاسكفورم. ثم يمكنك إضافة حقول لإدخال اسم المستخدم وكلمة المرور ، بالإضافة إلى زر لإرسال النموذج.
كيف يمكنني إعداد إذن عبر قارورة?
لإعداد إذن عبر قارورة ، تحتاج إلى إنشاء مثيل من فئة لوجينماناجر وتسجيله في تطبيق قارورة. ثم يمكنك تحديد وظائف لتنزيل المستخدم والتحقق من كلمة المرور الخاصة به ، وإنشاء الديكور للتحقق من مصادقة المستخدم.