django-social-auth :如何将 example.com 重定向到 127.0.0.1:8000



我相信许多 Django 开发人员在使用社交身份验证时一定会遇到这个问题。最初,当您开发它时,您希望在本地服务器上对其进行测试,因此您将重定向 etc/hosts 中的域名。

我在文档中遇到了这个问题:

https://github.com/omab/django-social-auth#facebook

如果您在 Facebook 设置页面中定义了重定向 URL,请务必不要 定义http://localhost:8000,因为它不会 测试时工作。相反,我定义 http://myapp.com 并设置一个 映射在/etc/hosts 上或使用 DNSMASQ。

据我了解,您不能在/etc/hosts 中定义任何端口。

因此,在此处定义此条目:

127.0.0.1       example.com

仍然没有击中以 127.0.0.1:8000 运行的 Django 服务器。

你们是怎么做到的?

谢谢

每个人都说,"将 example.com 添加到您的主机文件中..."但忽略了在启动运行服务器后应该使用 example.com:8000。 以下是对我有用的更详细的步骤:

在 Linux 上:

  • 打开终端
  • sudo gedit(或将gedit替换为选择的文本编辑器)
  • 打开 etc/hosts 文件
  • 添加一行:127.0.0.1 example.com(如果您已经有一行以 127.0.0.1 开头,您可以保留它 - https://serverfault.com/questions/231844/is-it-safe-to-add-additional-127-0-0-1-entries-to-etc-hosts)
  • 保存文件
  • 启动 Django 开发服务器 - Python manage.py RunServer
  • 打开浏览器并转到 example.com:8000(这会为Google和其他无法使用127.0.0.1或localhost的网站提供正确的回调)
  • 你应该看到你的django网站的主页。
  • 转到您要连接的社交网站,并使用 example.com 作为网站名称设置您的客户 ID。 例如,谷歌的回调网址是 http://example.com:8000/complete/google-oauth2/
  • 复制相应的密钥/ID 设置并粘贴到 SETTINGS.py
  • 现在您的开发服务器应该可以工作了!

我知道这是一个较旧的帖子,但我在任何地方都找不到完整的步骤。如有必要,请添加澄清,因为我不是这方面的专家。

我已经按照以下步骤解决了重定向问题:https://serverfault.com/questions/397364/how-to-setup-named-virtual-hosts-in-nginx

简而言之,您需要在/etc/hosts 中输入一个条目,就像我上面所说的那样,以及 nginx 代理。

安装提琴手。安装后,转到"主机">"工具"。

然后,您可以从 127.0.0.1:8000 映射到 mysite.com

下面终于为我修复了它...

在授权的 JavaScript 来源下:http://localhost:8000

在"授权的重定向 URI"下: http://localhost:8000/page-name-here

如果你们中的任何人在将 127.0.0.1 mysite.com 添加到 /etc/hosts 后仍然在苦苦挣扎,请检查您是否正在使用 VPN。我仍然收到错误"无法连接到 mysite.com:8000"。 我通过关闭我的VPN解决了这个错误。

最新更新