8

我相信许多 Django 开发人员在使用 social-auth 时一定会遇到这个问题。最初,当您开发它时,您想在本地服务器上对其进行测试,因此您将重定向您的 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 服务器。

你们是怎么做到的?

谢谢,

4

5 回答 5

5

每个人都说,“将 example.com 添加到您的主机文件......”但忽略了在启动 runserver 后您应该使用 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-entry-to-etc-hosts )
  • 保存文件
  • 启动你的 django 开发服务器 - python manage.py runserver
  • 打开浏览器并转到 example.com:8000 (这将正确回调到 google 和其他不适用于 127.0.0.1 或 localhost 的网站)
  • 您应该会看到 django 站点的主页。
  • 转到您要连接的社交网站并设置您的客户 ID,使用 example.com 作为网站名称。例如,google 的回调 url 是http://example.com:8000/complete/google-oauth2/
  • 复制相应的密钥/ID 设置并粘贴到您的 SETTINGS.py
  • 现在您的开发服务器应该可以工作了!

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

于 2015-04-08T18:31:28.660 回答
0

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

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

于 2014-08-16T10:26:07.070 回答
0

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

简而言之,您需要像上面一样在 /etc/hosts 中添加一个条目,并在它们之间添加 nginx 代理。

于 2012-06-13T12:03:03.763 回答
0

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

于 2020-11-26T17:23:55.737 回答
0

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

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

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

于 2019-03-05T16:40:34.967 回答