禁用重定向至 /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:

嗯,我看到这里需要先点击一个登录按钮:

但我从未因此感到困扰。我认为直接跳转到输入表单而不显示当前位置,并不是更好的体验。这里的关于当前位置的信息更少:

哎呀:facepalm:我忘了我们对“首页”做了特殊处理……其他所有页面应该立即显示登录页。也许这应该是一个设置选项:thinking:

@pmusaraj 你还记得我们为什么对首页做特殊处理吗?

是的,大多数需要登录的网站都受益于拥有这个登录界面。例如,如果支持注册,它们会提供注册/登录按钮,并在显示表单前提供描述社区的空间。

我们确实在一种特定场景下提供跳过此界面的选项:当网站仅支持一种外部登录方式时,可通过以下设置实现:

原来该设置在 https://physicswithethan.discourse.diy 上已启用。

因此,自创建此主题以来,我并未更改任何设置。

现在,由于 我的 /login 据称与“注册”相同,在我的使用场景中,我已禁用了“启用本地登录”功能。