Facebook Login Error: CSRF detected

我必须改进我的答案。

在尝试了 FB 和 Google 身份验证后,由于公司政策,我停留在 Office365 登录。

当我将我的 discourse 服务器置于代理后面时(参见下图),O365 身份验证变得不可用。它需要启用 force https,而此选项在代理后面是无效的。感谢 Daniel 解决了这个问题:https://meta.discourse.org/t/moved-site-behind-proxy-favicon-and-header-not-using-https-anymore/131486/11。

内部 Nginx 配置中的行

proxy_set_header X-Forwarded-Proto $scheme;

应替换为

proxy_set_header X-Forwarded-Proto "https";

外部 Nginx 不需要此类修改。它有:

proxy_set_header X-Forwarded-Proto $scheme;

可能 FB、Google 和其他类型的身份验证也存在同样的问题。

附注

显然该字符串包含一个错字 $,并且是无用的。

1 个赞