تعطيل الصفحة الأولية التي تعيد التوجيه إلى /login

مرحباً،

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

import { apiInitializer } from "discourse/lib/api";

export default apiInitializer("1.0", (api) => {
  api.onPageChange((url) => {
    const user = api.getCurrentUser();

    let path = url?.startsWith("http") ? new URL(url).pathname : url;
    path = path?.replace(/\/+$/, "") || "/";

    const allowedAnonPaths = ["/login", "/privacy", "/tos", "/pub/about-this-forum", "/safe-mode", "/pub/accessibility-statement"];

    if (!user && !allowedAnonPaths.includes(path)) {
      window.location.href = "/login";
    }
  });
});

هذا يستبعد المسارات التي لا أريد تحويل الحركة منها.


هذا الحل ليس مثالياً، لكنه مستخدم حالياً على https://physicswithethan.discourse.diy

أنا متأكد تقريبًا أن Discourse يقوم بذلك بالفعل نيابةً عنك. إذا لم يكن يعمل، فهذا يعني أن هناك مشكلة في إعداداتك :thinking:

حسناً، أرى زر تسجيل دخول يجب عليك النقر عليه أولاً هنا:

لكنني لم أزعجني ذلك قط. لا أعتقد أن نقلك إلى نموذج إدخال دون أن ترى موقعك الحالي سيكون تجربة أفضل. هنا توجد معلومات أقل عن موقعك:

صحيح :man_facepalming: لقد نسيت أننا قمنا بمعالجة حالة خاصة لـ “صفحة البداية”… يجب أن تظهر جميع الصفحات الأخرى صفحة تسجيل الدخول مباشرة. ربما يجب أن يكون ذلك إعدادًا :thinking:

@pmusaraj هل تتذكر لماذا قمنا بمعالجة حالة خاصة لصفحة البداية؟

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

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

اتضح أن هذا الإعداد مُفعّل على https://physicswithethan.discourse.diy

لذلك لم أقم بتغيير أي إعدادات منذ قبل بدء هذا الموضوع