2

Rails アプリを OAuth2 プロバイダーとして設定しています (Doorkeeper を使用)。アプリは、ユーザー アカウントごとに異なるサブドメインを使用します (または、cname レコードを使用してまったく異なるドメインを使用します)。

i.e. 
user1.myrailsapp.com
user2.myrailsapp.com
www.mycustomdomain.com

プロバイダー側​​では、すべてが期待どおりに機能しています。

また、最初のアプリの公開 API を利用するクライアントである 2 番目のアプリもあります。クライアントのバージョンは動作していますが、OmniAuth 戦略でサイト URL がハードコードされているだけです。

問題は、リクエストごとに戦略の URL を動的に設定するにはどうすればよいかということです。

4

2 に答える 2

3

興味のある方は、ソリューションは動的プロバイダーを使用することです: https://github.com/intridea/omniauth/wiki/Dynamic-Providers

Rails.application.config.middleware.use OmniAuth::Builder do
  provider :mystrategy, ENV["OAUTH_ID"], ENV["OAUTH_SECRET"],
    :setup => lambda{|env| 
      env['omniauth.strategy'].options[:client_options].site = env['rack.session']['oauth_site']
    }
end
于 2012-06-25T07:51:58.753 に答える