Rails4 + OmniAuth で、Twitter 経由のアプリ認証エラーが発生する
Rails 初心者です。
コチラの記事を参考に Rails で OAuth による Twitter ログインを実装しています。
ひと通りの設定が終わり、 Twitter に飛んだ後「連携アプリを認証」ボタンをおして
サイトに戻ってくるときに、以下のエラーが発生してしまいます。
調べてみると、原因としましては、 Rails のコントローラには
予期しない値を受け入れないようにするための仕組みがあり
Rails 4.x からは外部から渡ってくるパラメータのホワイトリストの定義方法が変更となり
params.require(:hoge).permit(:fuga, :piyo)
などと記述するようになっているということを理解したのですが
コントローラで受け取ったパラメータをどのようにして User.from_omniauth()
メソッドに
渡せばいいのか分かりません。
コントローラのコードは以下になります。
class OmniauthCallbacksController < Devise::OmniauthCallbacksController
def all
user = User.from_omniauth(request.env['omniauth.auth'])
if user.persisted?
flash.notice = 'welcome!'
sign_in_and_redirect
else
session['devise.user_attributes'] = user.attributes
redirect_to new_user_registration_url
end
end
alias_method :twitter, :all
end