0

現在422のエラー(無効な認証トークンがレールに渡されています)を処理していますが、現在は別のページにユーザーをリダイレクトしています。これはうまくいきますが、私が発見したことは、ユーザーがログインしてそのログ中に422エラーが発生した場合、ユーザーは別のページに行き、現在ログインしていることです。理想的には、ログイン時の422エラーの処理

私は現在、認証のためにDevise(3.4.1)ユーザです。下に書かれたコードの外にカスタムコードは書かれていません。

422エラーが発生し、ログインしていないときにユーザーがログインできないようにするにはどうすればよいですか?

class ApplicationController < ActionController::Base 
    protect_from_forgery with: :exception 

    # This method is called whenever a CSRF token is invalid. 
    def handle_unverified_request 
    # By default this method raises ActionController::InvalidAuthenticityToken 
    redirect_to '/422' 
    end 
end 
+0

Railsは組み込まれていない認証のための機能を試してみてください。それが宝石であるかカスタム実装であるかに関わらず、これをどのように扱うかについて、より多くの情報を提供してください。 – coreyward

+0

私の答えを更新しました。 Btw私は認証のためにDeviseを使用します。 – jason328

答えて

0

この

def handle_unverified_request 
    super # call the default behaviour, including Devise override 
    authenticate_user! 
end 
+0

私はDeviseがこのメソッドをオーバーライドしたことを認識したときにそれを回しました。問題は、 'super'を呼び出すことによって発生する' ActionController :: InvalidAuthenticityToken'というエラーが発生することです。 – jason328

関連する問題