omn iauth-facebook READMEには、初期化子で設定する方法と、scope
リクエストごとのようにオプションを設定する方法が記載されています。リクエストごとにアプリIDとアプリシークレットを設定することは可能かしら。
2715 次
3 に答える
16
あなたはこれを行うことができます:
omniauth.rbで、次のようにします。
Rails.application.config.middleware.use OmniAuth::Builder do
provider :facebook,:setup => true
end
次に、コントローラーで以下を定義する必要があります。
def setup
request.env['omniauth.strategy'].options[:client_id] = @site.facebook_key
request.env['omniauth.strategy'].options[:client_secret] = @site.facebook_secret
render :text => "Setup complete.", :status => 404
end
もちろん、routes.rbに関連するルートを追加する必要があります。
#Facebook Omniauth routes
match '/auth/facebook/callback' => 'session#authorize_callback'
match '/auth/facebook/setup' => 'session#setup'
幸運を
よろしく。イワン。
于 2012-11-23T11:34:52.807 に答える
5
私はdeviseを使用しています(このrailscastに続きます:http://railscasts.com/episodes/235-devise-and-omniauth-revised )が、Ivangrxのソリューションを実装する方法を理解するのに少し時間がかかりました。とても簡単でした。これが私のコードです:
# /config/initializers/devise.rb
config.omniauth :facebook, setup: true
# routes.rb
devise_scope :user do
#where omniauth_callback is the controller I made when following the Railscast
get "users/auth/facebook/setup" => "omniauth_callbacks#setup"
end
# omniauth_callbacks_controller.rb
def setup
request.env['omniauth.strategy'].options[:client_id] = @site.facebook_id
request.env['omniauth.strategy'].options[:client_secret] = @site.facebook_key
render :text => "Setup complete.", :status => 404
end
これについて助けてくれてありがとう!
于 2013-05-30T08:00:06.733 に答える
1
deviseを使用している場合は、これを行うことができます
config.omniauth :facebook, :setup => lambda{
current_app_secret = // Get current domain
current_app_key = // Get config
env['omniauth.strategy'].options[:client_id] = current_app_secret
env['omniauth.strategy'].options[:client_secret] = current_app_key
}
于 2012-11-23T09:07:02.587 に答える