omniauth-facebookで複数アプリを使う。

RailsでFacebookのOAuthをするにはomniauth-facebookが便利ですが、そのままだと1つのアプリしか使うことが出来ません。

mkdynamic/omniauth-facebook

provider :facebook, ENV[‘FACEBOOK_KEY’], ENV[‘FACEBOOK_SECRET’]

Facebookのアプリ登録の方もサイトURLは1つのアプリにつき1つしか指定出来ないので、通常はこれで問題ないのですが、1つのRailsアプリで複数のドメイン(=複数のFacebookアプリ)を扱いたいことがあり、実現方法を調べていました。
結論としては、Facebookへリダイレクトする直前に割り込み、リクエストされたURLに合わせてKEYとSECRETを入れ替えています。ソースはこんな感じ。(config/initializers/omniauth.rbに書いてしまった。)

なんだか無理矢理な気はしているので、もっとうまいやり方があったら教えてください。

タイトルとURLをコピーしました