You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP开发Facebook登录时遇Insecure Login Blocked错误求助

解决Facebook登录时的"Insecure Login Blocked"错误

嗨,这个问题我太熟了!你遇到的这个**"Insecure Login Blocked: You can't get an access token or log in to this app from an insecure page. Try re-loading the page as https://"**错误,本质就是Facebook现在强制要求所有登录请求必须通过HTTPS协议发送,你的页面目前是用HTTP访问的,所以直接被拦截了。下面给你一步步解决的办法:

  • 启用网站的HTTPS访问
    如果是线上服务器,你需要给域名配置SSL证书(比如用Let's Encrypt的免费证书),然后在服务器配置(Apache/Nginx)里开启HTTPS监听(默认端口443)。要是本地开发(比如用XAMPP/WAMP),可以生成自签名SSL证书,修改对应的服务器配置文件来启用本地HTTPS,比如把本地访问地址从http://localhost改成https://localhost。

  • 更新Facebook应用的配置
    登录Facebook开发者后台,找到你的应用:

    1. 进入「Settings」->「Basic」,确保「App Domains」填写的是HTTPS开头的域名;
    2. 切换到「Facebook Login」->「Settings」,把「Valid OAuth Redirect URIs」里的地址全部改成HTTPS格式的回调地址,比如https://yourdomain.com/fb-callback.php或者本地的https://localhost/fb-callback.php。
  • 修正PHP代码里的回调URL
    检查你生成登录链接的代码,确保回调地址是HTTPS的。比如:

    $helper = $FB->getRedirectLoginHelper();
    // 这里的回调地址必须是HTTPS的
    $loginUrl = $helper->getLoginUrl('https://yourdomain.com/fb-callback.php', ['email', 'public_profile']);
    
  • 本地开发的临时调试技巧(仅用于测试)
    如果暂时不想配置本地SSL,Chrome浏览器可以通过启动参数绕过安全检查,但注意这只能用于开发测试,绝对不能用于生产环境:
    右键点击Chrome快捷方式→属性→在「目标」栏的末尾添加 --ignore-certificate-errors --unsafely-treat-insecure-origin-as-secure=http://localhost(把http://localhost换成你的本地开发地址),然后重启Chrome。

核心逻辑就是:所有和Facebook登录相关的页面(包括登录入口页、回调处理页)都必须通过HTTPS访问,同时Facebook应用后台的配置地址也要同步更新为HTTPS格式,这样就能解决这个登录拦截的问题了。

内容的提问来源于stack exchange,提问作者muhammadyaseen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 10:36:36