سؤال

تم التخطيط لتطبيق ويب مكتوب في Python ، Django هو منافس رائد كإطار عمل.

أحد المتطلبات هو الوصول إلى CAC ، مع الحاجة إلى إدخال اسم المستخدم وكلمة المرور. من ما يمكنني قوله ، فإن الوصول إلى CAC ليس جزءًا من "البطاريات" المدرجة في Django.

باعتباره إطارًا متجانسًا (ليس بالضرورة سمة سيئة) ، لدى Django مندوبًا لكونه صيانة عالية بمجرد تعديل النواة. هل يمكنني إضافة الوصول إلى CAC بسهولة إلى موقع Django؟ هل يمكن الحفاظ عليها بسهولة بعد ذلك؟

أو ربما يجب أن نفكر في إطار بيثون مختلف؟

لمعلوماتك .. عرض تقديمي مثير للاهتمام حول الوصول إلى CAC حلقة الوصل

هل كانت مفيدة؟

المحلول

لا تحتاج إلى تعديل النواة لتمكين هذا. يدعم Django خلفية مصادقة الطرف الثالث وهي من السهل الكتابة إلى حد ما - تحتاج فقط إلى دعم طريقتين ، get_user و authenticate. لذلك يحتاج تطبيقك فقط إلى تنفيذ هذه العمليات باستخدام واجهة CAC الخاصة بك ، وسيعمل كل شيء كالمعتاد.

نرى وثائق للتفاصيل.

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

نصائح أخرى

لقد فعلت هذا اليوم من خلال التصنيف الفرعي django.contrib.auth.middleware.remoteusermdware وقمت بتغيير خاصية الرأس إلى تلك التي وضعتها في Apache Conf. لقد أضفت للتو django.contrib.auth.backends.RemoteUserBackend و midderware إلى الإعدادات ويعمل بشكل مثالي.

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

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top