1

我正在使用omniauth-facebook gem 来做一些Facebook 登录的事情。该调用的工作方式是,当调用 /auth/facebook 时,它会执行身份验证过程。当我手动输入 URL 时,所有这些都可以正常工作:http://localhost:3000/auth/facebook

但是,当我只获取我的代码时,我的域设置为我的应用程序具有以下 URL:

http://railsapps.mydomain.com/app1  
http://railsapps.mydomain.com/app2  
http://railsapps.mydomain.com/app3

等等

现在在我的索引页面中,我有一个链接,它写在我的 .html.erb 文件中,如下所示:

<%= link_to "Sign in with Facebook", "/auth/facebook", id: "sign_in" %>

当我在本地运行它并单击链接时,它会正确转到 localhost:3000/auth/facebook,世界上一切都很好。但是,当我使用相同的代码上网并单击此链接时,它会转到:(http://railsapps.mydomain.com/auth/facebook这当然不起作用,因为它应该转到railsapps.mydomain.com/app1/auth/facebook.

在这方面可以提供的任何帮助将不胜感激。

谢谢你。

4

2 回答 2

2

你应该可以使用这个:

<%= link_to "Sign in with Facebook", root_url + "auth/facebook", id: "sign_in" %>

或者如果这不起作用,请尝试 request.host:

<%= link_to "Sign in with Facebook", "http://#{request.host}/auth/facebook", id: "sign_in" %>
于 2012-08-30T16:26:48.093 回答
0

你应该编辑你default_url_optionsApplicationController

def default_url_options
  if Rails.env.production?
    {:host => "railsapps.mydomain.com/app1"}
  else  
    {}
  end
end
于 2012-08-30T13:29:19.763 回答