我正在使用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
。
非常感谢在这方面提供的任何帮助。
谢谢。
答案 0 :(得分:1)
你应该能够使用它:
<%= 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" %>
答案 1 :(得分:0)
您应该在default_url_options
中修改ApplicationController
:
def default_url_options
if Rails.env.production?
{:host => "railsapps.mydomain.com/app1"}
else
{}
end
end