配置Let's Encrypt SSL后仍遇Facebook Login API不安全登录错误求助
针对你遇到的这个问题,我结合实际排查经验,整理了几个最可能的原因:
当前访问的页面协议是HTTP而非HTTPS:Facebook的登录流程要求发起登录请求的页面必须是HTTPS,哪怕你配置的重定向URI是HTTPS也没用。先检查浏览器地址栏,确认显示的是带锁图标的
https://,如果是http://,说明你的站点在前端加载时没有强制跳转HTTPS,需要在服务器(比如Nginx/Apache)配置强制HTTPS跳转,或者用WordPress插件来自动处理。WordPress站点核心URL未更新为HTTPS:很多人装了SSL后,忘了在WordPress后台更新基础URL。去「设置-常规」里,确认「WordPress地址(URL)」和「站点地址(URL)」都是
https://开头的。如果还是HTTP,插件生成的登录链接可能会继承这个协议,导致Facebook判定为不安全。缓存或CDN导致旧资源残留:如果你的网站用了缓存插件(比如WP Rocket、WP Super Cache)或者CDN服务,可能缓存了之前HTTP版本的页面或插件配置。试试清空网站缓存、CDN缓存,然后用
Ctrl+F5强制刷新页面,再测试登录功能。Facebook应用的HTTPS强制设置未生效:进入Facebook开发者后台,找到你的应用,依次打开「产品-Facebook登录-设置」,检查「强制HTTPS」选项是否勾选。虽然现在默认是开启的,但有时候可能因为配置变更被重置,勾选后保存再测试。
重定向URI的细微不一致:Facebook对重定向URI的匹配非常严格,比如结尾的斜杠、路径拼写差异等。去Woocommerce Social Login的设置里,复制插件给出的完整重定向URI,然后粘贴到Facebook的「Valid OAuth Redirect URIs」里,确保完全一致,没有任何格式或拼写错误。
内容的提问来源于stack exchange,提问作者Yasin ÇABUK

