1

私はomniauth-facebookgemを使用して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_optionsあなたはであなたを編集する必要がありますApplicationController

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