DW_dev
1
您好,
我的 Discourse 论坛在社交登录(Google、Discord、LinkedIn)方面遇到了问题:
移动端流程:
-
社交登录正常打开。
-
重定向回我的网站后,我只停留在主页,但没有登录。
日志中每次都显示:
(google_oauth2) Authentication failure! csrf_detected
或
(discord) Authentication failure! invalid_credentials: invalid_request
我已检查的内容:
-
OAuth 设置正确(桌面端工作正常)
-
已清除设备上的 Cookie/缓存
-
测试了真实的浏览器,而不是应用内浏览器
-
任何移动浏览器都一样 → 总是检测到 CSRF
问题:
Discourse 中有什么可能导致社交登录仅在移动设备上丢失会话/Cookie 并以 csrf_detected 终止?
感谢任何帮助!
1 个赞
pfaffman
(Jay Pfaffman)
2
这是标准安装吗?如果不是,您是否启用了 force_https?
DW_dev
3
您好,是的,这是一个标准的 Discourse 安装(安装在 Hetzner 服务器上)。
DW_dev
4
我找到了导致移动设备上社交登录(Google、Discord 等)失败并显示 csrf_detected 的问题的解决方案,尽管它在 PC 上可以正常工作。
根本原因在于我的主题:
主题 \u003chead\u003e 部分中的一个自定义 JavaScript 脚本在移动设备上持续重新加载页面(window.location.replace)。
这种强制重定向破坏了 Google/Discord 回调后会话验证所需的临时 CSRF 令牌。
解决方案:
我从主题中删除了强制移动视图的整个脚本。
如果您遇到类似问题并使用了自定义主题,请检查其中是否有触发重定向的脚本。这就是我这里出问题的原因!
1 个赞
system
(system)
关闭
5
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.