omniauth-facebook自述文件提到了如何在初始化程序中设置它,以及如何设置仅适用于每个请求的范围的选项.我想知道是否可以为每个请求设置应用程序ID和应用程序秘密.
解决方法
你可以这样做:
在你的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
当然,您必须在路由器上添加关联的路由.
- #Facebook Omniauth routes
- match '/auth/facebook/callback' => 'session#authorize_callback'
- match '/auth/facebook/setup' => 'session#setup'
祝你好运
问候.伊万.