تجربة مجتمع جديد: فشل plugin WP-Discourse بسبب Basic Auth

أقوم بإعداد مواقع Wordpress و Discourse (مستضافة ذاتيًا) باستخدام المكون الإضافي WP-Discourse.

لقد قمت بتمكين مصادقة HTTP الأساسية بنجاح على كلا الموقعين لمنعهما من الوصول إليهما حتى يصبحا جاهزين للانطلاق (مما يؤدي إلى حظر الوصول من الجمهور العام وكذلك محركات البحث).

Wordpress (معلومات للأشخاص الذين يتطلعون إلى تحقيق شيء مماثل)

Discourse

يعمل المكون الإضافي WP-Discourse بشكل جيد حتى يتم تمكين المصادقة الأساسية على خادم Discourse.

(تعديل) هذا هو الخطأ في سجل المكون الإضافي WP-Discourse على جانب Wordpress: [2025-02-14 18:20:06] connection.INFO: check_connection_status.failed_to_connect {"error":"wpdc_response_error","message":"An invalid response was returned from Discourse","http_code":401,"http_body":"\u003chtml\u003e\r\n\u003chead\u003e\u003ctitle\u003e401 Authorization Required\u003c/title\u003e\u003c/head\u003e\r\n\u003cbody\u003e\r\n\u003ccenter\u003e\u003ch1\u003e401 Authorization Required\u003c/h1\u003e\u003c/center\u003e\r\n\u003chr\u003e\u003ccenter\u003enginx\u003c/center\u003e\r\n\u003c/body\u003e\r\n\u003c/html\u003e\r\n"}

أي أفكار حول كيفية استثناء واجهات برمجة التطبيقات (APIs) من طلب مصادقة HTTP الأساسية على Discourse؟

شكرا!

هل فعلت ذلك؟ لست متأكدًا تمامًا من أن Discourse سيعمل خلف المصادقة الأساسية؛ لقد حاولت مرة واحدة ولكني استسلمت. يبدو أنه من المرجح أن يؤدي ذلك إلى تعطل wp-discourse (أوه، وكنت على حق بشأن ذلك!). إذا نجحت، فلن تكتب هذه الرسالة. :wink:

بالنسبة لمواقع التدريج الخاصة بـ Discourse، أقوم بشكل عام بتعيين “تسجيل الدخول مطلوب” وهذا يبقي محركات البحث بعيدًا. لا يزال بإمكان شخص لديه تسجيل دخول تسجيل الدخول، ولكن هذا ما تريده عادةً.

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

هل يمكنك إخبار المصادقة الأساسية بالسماح بالوصول من عنوان IP الخاص بخادم Discourse الخاص بك؟ ربما: Allow access from one IP, require basic auth from all other sources - Traefik v2 - Traefik Labs Community Forum

شكرًا لك، ساعدني هذا الدليل في حل المشكلة. إليك قسم المصادقة الأساسية المحدث لـ app.yml على خادم Discourse الخاص بي (لم تكن هناك حاجة إلى تغييرات على خادم Wordpress):

# المصادقة الأساسية
  after_bundle_exec:
    - replace:
       filename: "/etc/nginx/conf.d/discourse.conf"
       from: "# السماح بتجاوز ذاكرة التخزين المؤقت من localhost"
       to: |
            # السماح بتجاوز المصادقة الأساسية لمكون WP-Discourse الإضافي
            geo $authentication {
            default "بيانات الاعتماد التي يجب عليك تقديمها.";
            127.0.0.1 "off";
            151.101.3.55/32 "off";
            }
            # السماح بتجاوز ذاكرة التخزين المؤقت من localhost
    - replace:
       filename: "/etc/nginx/conf.d/discourse.conf"
       from: "# auth_basic on"
       to: "auth_basic $authentication"
    - 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: |
         alfred:$apr1$jSdLuHyZ$faWxYGjnmLd/zRC6UMsRs1

151.101.3.55 هو عنوان IP العام (كمثال) لخادم Wordpress الخاص بي. يبلغ WP-Discourse الآن:
شاشة فارغة تعرض النص ذو الحدود الخضراء، "أنت متصل بـ Discord!" (تم إنشاؤه بواسطة الذكاء الاصطناعي)

إعجابَين (2)

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.