Facebookに対してRailsアプリを認証するためにdevise/omniauthを使用しています。をカスタムのものに変更しようとしていcallback_path
ますが、何に設定しても、omniauth.auth
リクエスト変数はnilとして返されます。たとえば、ここでは、を設定callback_path
しない場合の正確な値に設定しています。
Devise.setup do |config |
require "omniauth-facebook"
config.omniauth :facebook,
ENV['FACEBOOK_APP_ID'],
ENV['FACEBOOK_APP_SECRET'],
scope: "email",
:setup => lambda { |env|
env['omniauth.strategy'].options[:callback_path] = "user/auth/facebook/callback"
}
end
を設定しない:callback_path
と、認証が機能し、omniauth.auth
リクエスト変数にデータが返されます。ただし、コールバックでの属性の受け渡しをサポートする必要があるため、オーバーライドする必要があります。
Omniauth :: Strategyコードを調べて、何が問題になっているのかを確認しましたが、何が問題になっているのか完全には理解できません。
私の質問:
- なぜこれが機能しないのですか?
- 問題を解決するためのより良い方法はありますか?