قصر الوصول إلى موقع Discourse الخاص بك باستخدام مصادقة HTTP الأساسية

في بعض الأحيان، لا ترغب في أن يتمكن الجمهور العام من الوصول إلى مثيل Discourse الخاص بك بعد، كما هو الحال عند إعداد موقع للانتقال.

ملاحظة: واجهت بعض المشاكل مؤخرًا مع المصادقة الأساسية (basic-auth)، حيث لم يتم تحميل بعض الأصول الثابتة. قد يكون من الأسهل ببساطة تكوين موقعك لـ login_required عن طريق إضافة DISCOURSE_LOGIN_REQUIRED: true في قسم env من ملف app.yml الخاص بك.

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

:information_source: ملاحظة: سيظل المستخدمون بحاجة إلى إكمال عملية التسجيل وتسجيل الدخول العادية في Discourse.

بيانات اعتماد المصادقة الأساسية

توليد كلمة مرور مشفرة

htpasswd -bn =username= =password=

ملاحظة: ستحتاج إلى htpasswd للقيام بذلك. في أنظمة Ubuntu/Debian، يتوفر في حزمة apache2-utils. إذا كان لديك وصول إلى جهاز آخر مثبت عليه htpasswd، فيمكنك تشغيل الأمر هناك ببساطة. إذا كان هدفك هو مجرد منع محركات البحث من الوصول، فلا يوجد سبب لعدم استخدام كلمة المرور المذكورة في هذا المثال.

ضع اسم المستخدم وكلمة المرور المشفرين هنا

أضف إلى app.yml

# basic auth
  after_bundle_exec:
    - replace:
       filename: "/etc/nginx/conf.d/discourse.conf"
       from: "# auth_basic on"
       to: "auth_basic on"
    - replace:
       filename: "/etc/nginx/conf.d/discourse.conf"
       from: "# auth_basic_user_file /etc/nginx/htpasswd"
       to: "auth_basic_user_file /etc/nginx/htpasswd"
    - replace:
       filename: "/etc/nginx/conf.d/discourse.conf"
       from: "location = /srv/status {"
       to: "location = /srv/status {
           auth_basic off;"
    - file:
       path: "/etc/nginx/htpasswd"
       contents: |
         =auth_string=    

يؤدي قسم after_bundle_exec إلى تغيير إعدادات nginx داخل حاوية Discourse. عندما تكون مستعدًا للإطلاق الفعلي، ما عليك سوى حذف هذا القسم وإعادة البناء.

14 إعجابًا