【发布时间】:2014-06-10 14:27:47
【问题描述】:
我在 localhost:3000 上运行流星,我设置了 apache 以使用虚拟主机和 mod_proxy 将域请求代理到流星实例。
我在尝试使用 accounts-facebook 登录我的流星应用时遇到此错误:
应用程序配置不允许给定 URL。: 一个或 应用程序的设置不允许更多给定的 URL。它必须 匹配网站 URL 或画布 URL,或者域必须是子域 应用程序的域之一。
我认为这是因为我的 ROOT_URL 是 http://localhost:3000 。如果我将 ROOT_URL 更改为域,那么流星当然会尝试监听域,但不能,因为我的 apache 服务器妨碍了。
有没有一种方法可以在没有其他 IP 地址的情况下完成这项工作?
【问题讨论】:
-
如果在测试时将
mydomain.com localhost添加到/etc/hosts文件中会怎样? -
@DavidWeldon,我非常喜欢这个主意。不过刚刚试了一下,apache还是拦截了请求。
-
我不明白你的问题。您可以将 ROOT_URL 更改为您想要的任何 URL。并使用 'mrt -p port (dev)' 或 'PORT=port mrt (release)' 来监听你想要的任何端口。希望对您有所帮助。
-
@FlyingFisher,关键问题是 account-facebook 需要 ROOT_URL 来匹配客户端所在的实际 URL,因为 OAuth 过程的一部分是检查请求是否来自 Facebook 中允许的域开发者设置。因为我试图在有 Apache 服务的其他网站的服务器上运行,而让流星和 Apache 共享 IP 地址的唯一方法是使用 mod_proxy。因此,ROOT_URL 需要为localhost 用于服务目的,但mydomain.com 用于帐户-Facebook。 Linode 也不会给我第二个 IP 地址(GRRR)。
标签: facebook apache proxy meteor