Facebook通过路由器在手机上认证(Ruby on Rails - OmniAuth)

时间:2012-07-11 06:43:31

标签: ruby-on-rails omniauth facebook-authentication

我正在制作手机应用程序,我需要使用Twitter和Facebook身份验证。

我正在开发的我的电脑和手机(三星Galaxy S2)连接到一台路由器。

我的PC IP是10.4.1.6。对于Twitter身份验证,我只需输入callback_url "http://10.4.1.6:3000",一切都很好,但对于Facebook身份验证,我得到:

"Invalid redirect_uri: Given URL is not allowed by the Application configuration."

我认为如果我无法输入路由器的IP,那么我可以在手机和PC上编辑我的主机文件以指向我的Rails服务器,但仍然没有运气。

当我尝试输入"http://rails_dev_work_pc.com:3000"时,Facebook告诉我该网址无效。我该如何解决这个错误?

编辑:
我试着输入这个:

但是我的手机和电脑上出现了同样的错误。

此外:

在PC上工作正常,但在我的手机上我收到了无效的网址错误。

我没有想法..

1 个答案:

答案 0 :(得分:0)

我正在使用此设置:

在hosts文件中,将localhost路由到localhost.com(或您喜欢的任何内容)。现在您应该能够使用以下Facebook应用程序配置:

App Domain(s): localhost.com
Website for facebook login: http://localhost.com:3000/
Canvas-URL (optional): http://localhost.com:3000/<yourfacebookendpoint>

如果这对您有用,请告诉我。此外,我发现有2个facebook应用程序非常有用 - 一个用于生产(指向您的生产应用程序URL),另一个用于测试(指向您在HOSTS文件中配置的URL)。这样,您可以在不中断生产应用程序的情况下进行测试。

修改

这是@ExEdzy发布的最终解决方案,作为此答案的编辑:

我刚将主机文件中的“localhost localhos.com”更改为“ip localhost.com”

在我的手机中,ip是我的电脑的IP(10.4.1.6)。在我的电脑主机文件中,ip是“127.0.0.1”

在Facebook中: - App Domains:=&gt; “http://localhost.com:3000” - 网站网址:=&gt; “http://localhost.com:3000/auth/facebook/callback” 工作就像一个魅力。