登录和注销错误,这是由于缓存设置与Cloudflare冲突

尊敬的社区成员:

我在此寻求帮助,以解决影响我们 Discourse 论坛 starorigin.net 的一个关键问题。用户正在经历一个严重的登录/注销错误,这导致我们的社区瘫痪。当尝试注销时,页面会刷新但无法完全注销,显示消息“您已成功注销”,并附带一个无法解决问题的刷新按钮。此外,在新浏览器或隐身模式下登录或注销也存在问题。

我们已经尝试了几个故障排除步骤,包括清除浏览器缓存、使用不同的浏览器和设备以及检查更新。我们怀疑最近安装的插件和主题可能导致了这个问题,但即使在删除它们并重建容器后,问题仍然存在。

非常感谢您的专业知识和帮助。如果您有任何见解或解决方案,请回复。

感谢您的帮助。

此问题已解决
非常感谢大家的支持和建议,特别是 @denvergeeks,他热情地通过注册和登录我的网站来帮助我找出错误并解决问题。这个问题的一半是由于我自己的疏忽和愚蠢造成的,因为 Cloudflare 的缓存设置与我的服务器管理面板 1Panel 的缓存设置之间存在冲突。在我关闭 1Panel 服务器管理面板中的缓存开关后,我的网站恢复正常。我非常感谢大家的帮助!

我想知道,安全模式下也会发生这种情况吗?

1 个赞

安全模式下,此 bug 仍然严重存在。此外,当我退出管理员帐户时,我会自动重定向到普通用户的帐户,并出现一个窗口显示“您已被注销”。此外,几天前我迁移到了一个新服务器,我不确定这是否与之有关。

1 个赞

在您的网站上注册并退出后,这是我的截图。

退出后重新加载页面,我仍然可以看到标题中的头像,但仍然显示相同的消息。



几分钟后(退出后),我再次重新加载页面,这次似乎已退出。

然后我尝试再次登录,之后我仍然看到“登录”按钮……

几分钟后,我再次重新加载页面,但没有变化,我仍然没有登录。

我切换到桌面模式(我在 iPhone 13 Pro 上的 Chrome 中执行所有这些操作),这是截图……

几分钟后,我再次尝试登录,但无法登录,并且仍然看到与上一个截图相同的画面。

2 个赞

这正是我目前面临的问题!就在刚才,当我尝试登录我的账户时,我甚至被错误地重定向到了您的账户界面!我不知道是什么导致了这一切。我计划备份我的社区数据,删除容器,重新拉取镜像,重建容器,然后恢复备份,看看这是否能解决我的问题。

2 个赞

这有点吓人!

你在浏览器开发者工具的控制台中看到了什么?

2 个赞

这是使用我们官方安装程序(位于 https://github.com/discourse/discourse/blob/main/docs/INSTALL.md)设置的支持的安装吗?

2 个赞

当我尝试登录我的帐户时,浏览器开发者模式报告了一个错误:

混合内容:页面“https://starorigin.net/t/topic/50”是通过 HTTPS 加载的,但请求了一个不安全的字体“http://starorigin.net/fonts/Lora-Bold.ttf?v=0.0.12”。此请求已被阻止;内容必须通过 HTTPS 服务。
chunk.ea1861026282343f4c7d.d41d8cd9.js:1

当我尝试注销我的帐户时,也报告了一个错误:

混合内容:页面“https://starorigin.net/”是通过 HTTPS 加载的,但请求了一个不安全的图片“http://starorigin.net/uploads/default/original/1X/c9eda24b3c8cae88b2287cd3d700e7a3c1eaa87d.svg”。此请求已被阻止;内容必须通过 HTTPS 服务。
starorigin.net/:1 混合内容:页面“https://starorigin.net/”是通过 HTTPS 加载的,但请求了一个不安全的元素“http://starorigin.net/uploads/default/optimized/1X/e5b35745d255cb00fd1111ac078d95a13229adc6_2_512x512.png”。此请求已自动升级到 HTTPS。有关更多信息,请参阅 https://blog.chromium.org/2019/10/no-more-mixed-messages-about-https.html。

Chrome 浏览器提供了一个建议,但我不太明白它的意思:

混合内容:通过 HTTPS 加载所有资源以提高您网站的安全性。
即使初始 HTML 页面是通过安全的 HTTPS 连接加载的,但某些资源(如图片、样式表或脚本)是通过不安全的 HTTP 连接访问的。为了加强整个网站的安全性,不安全资源的使用受到限制。

要解决此问题,请通过安全的 HTTPS 连接加载所有资源。

现在在我的 Windows 11 桌面(也在 Chrome 中)……

我再次登录到您的网站,首先看到这个(已登录,但却是别人的账户)……

然后又刷新了几次,看到这个……(同样,已登录,但却是别人的账户)……

关于混合内容错误有很多主题。

这里有一个解决方案:

但是,某些内容不通过 HTTPS 加载一定是有原因的,因为在标准安装中,HTTPS 应该是默认设置。

几天前,我迁移到了一个新的服务器。我是这样做的:我遵循了官方步骤来拉取镜像、创建容器并进入容器。然后,我创建了一个 app.yml 文件,并将旧服务器上 app.yml 文件中的内容复制到了新服务器上。之后,我将社区备份数据上传到了新服务器上的默认备份目录。最后,我重建了容器。按照这些步骤,我成功迁移到了新服务器。但是,一天后,在尝试安装新插件时,我遇到了这个 bug。我删除了所有新安装的插件,但 bug 仍然存在,我无法解决它。

几分钟后,您的网站自动刷新,然后我在控制台中看到这个…

我再次刷新页面,然后看到这个(那些错误现在消失了)…

几分钟前,我采纳了上面帖子中朋友的建议,强制启用了 HTTPS。

我的控制台刚刚报告了一个错误:

[PLUGIN discourse-tooltips]
“弃用通知:使用 reopen 修改 topic-list 已弃用。请改用值转换器 topic-list-columns 和其他新的 topic-list 插件 API。 [自 Discourse v3.4.0.beta3-dev 起弃用] [弃用 ID:discourse.hbr-topic-list-overrides]”
我想知道这是否与此插件有关?

我似乎找到了问题所在。这个插件似乎已被弃用,所以我将尝试删除它看看会发生什么。

我不这么认为,那只是一个开发人员意识弃用警告,因为它正在使用一个已弃用的 API。这不是错误。该特定 API 要到第二季度才会删除。

1 个赞

真有趣……我刚才在 Firefox(我以前从未使用过该浏览器访问您的网站,甚至今天早上也从未用过)中刚打开您的网站(但没有登录),即使没有登录,我也看到我以那个相同的其他用户身份登录了……

几分钟后,页面再次刷新,显示已注销……

然后,我在 Firefox 浏览器控制台中看到这些错误……

然后又刷新了几次,出现了这些……

在 Brave 浏览器中我看到这个……

这个讨论可能与之相关:

2 个赞

是的,正如您提到的,这不是插件的问题。我目前仍然无法查明并解决这个问题。

我再次尝试登录(使用 Brave 浏览器),然后看到了这个(我看到我已使用正确的用户头像登录)……

但是当我再次刷新页面后,我又被登出了……

我还进入了用户列表页面,发现我没有作为用户出现在那里……

然后再次刷新页面,我又看到了我的用户已登录……

然后我立即点击进入用户列表页面,但我仍然没有作为用户出现在那里(尽管我仍然可以在页眉中看到我的正确头像)……