http://www.workabroad.jp/posts/2099
を参考にしてFBログインを実装できました。
ログインボタンを押したページに親切にリダイレクトさせる仕様にしたいですが、
うまくいきません。
Facebookログイン時、csrf_detected | CSRF detected redirect_back_or
というエラーが表示されます。
Deviseは用いていません。何か参考になる資料をご存知の方、ご教授願いします。
# 現状のコード
これでFacebookログインが実装できていますが、
フレンドリーフォワーディングはできていません。
users_controller.rb
def create if env['omniauth.auth'].present? ################## Facebookログイン ################## @user = User.from_omniauth(env['omniauth.auth']) if @user.save(validate: false) @user.activate log_in @user flash[:success] = "Facebookでログインしました!" redirect_to [:user,:root] else redirect_to [:user,:root] flash[:danger] = "Facebookログイン失敗しました!" end ################## Facebookログイン ################## else // 通常ログイン(略) end end
頑張った後のエラーコード
sessions_helper.rb
# アクセスしようとしたURL記憶 def store_location session[:forwarding_url] = request.original_url if request.get? end # 記憶URL (またはデフォルト)へリダイレクト def redirect_back_or(default) redirect_to(session[:forwarding_url] || default) session.delete(:forwarding_url) end
users_controller.rb
################## 追加 ################## before_action :store_location,only: :create ################## 追加 ################## def create if env['omniauth.auth'].present? @user = User.from_omniauth(env['omniauth.auth']) if @user.save(validate: false) @user.activate log_in @user flash[:success] = "Facebookでログインしました!" ################## 追加 ################## redirect_back_or [:user,:root] ################## 追加 ################## else redirect_to [:user,:root] flash[:danger] = "Facebookログイン失敗しました!" end else // 通常ログイン(略) end end
こういう感じにしてみましたができませんでした。
どこか参考になるWEBがあるといいのですが。。。
ご教授いただける方、よろしくお願いします。
あなたの回答
tips
プレビュー