如何使用本地主机测试 Facebook 登录

How to test Facebook login with localhost

我正在使用 Django,并希望使用 django-allauth 登录 Facebook。

我用很少的时间登录了 Facebook,并用 localhost 测试了它。

但是我发现2018年3月之后FB登录需要https,所以当我在本地runserver登录fb时,报错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://.

有什么方法可以在本地主机上测试 fb 登录吗?

您可以只使用像 dev.yourdomain.com 这样的真实子域并将其 DNS 指向 127.0.0.1(或者可以使用 lvh.me 域,因为它也指向 127.0.0.1 - 但如果您一直相信他们)

然后你需要一个层来处理 HTTPS 在本地 https://dev.yourdomain.com。我推荐https://caddyserver.com/

通过这样一个非常简单的配置,Caddy 就可以使用它的自签名 SSL 证书(查看 Caddy 文档以获取详细信息)

dev.yourdomain.com:443 {
    tls self_signed
    proxy / localhost:8080
}

然后你可以在一些浏览器中打开https://dev.yourdomain.com,比如Firefox、Safari、Brave等(我认为Chrome默认阻止了自签名SSL站点)

更新 我在这里创建了一个更详细的注释

https://gist.github.com/ralavay/5d74d35859f87d22c74984488f20186c