0

私はRails 5アプリを持っています(apiのみ)。私はdevise_token_authを認証に使用しています。私はいくつかのコントローラを持っているアプリで、すべてのコントローラのために私はauthenticate_user!にしたいと思います。私はbefore_action :authenticate_user!行を繰り返さないようにしたいので、ApplicationControllerに配置しました。devise_token_authセッションのskip_before_actionの作成方法#create

class ApplicationController < ActionController::API 
    include DeviseTokenAuth::Concerns::SetUserByToken 
    before_action :authenticate_user! 
end 

この方法では、ログイン時および登録時にもauthenticate_user!が呼び出されます。ログイン、登録、ログアウトのために:authenticate_user!をスキップするにはどうすればよいですか?私はskip_before_actionを追加するためにSessionsControllerサルパッチに挑戦しました。

module DeviseTokenAuth 
    class SessionsController 
    skip_before_action :authenticate_user!, only: [:create, :destroy, ] 
    end 
end 

しかし、コントローラは遅延ロードされているので、私はエラーを次取得:私は

undefined method `skip_before_action' for DeviseTokenAuth::SessionsController:Class 

何をしないのですか?他の解決策?お手伝いありがとうございます!

答えて

0

SessionsControllerクラスは、skip_before_actionクラスメソッドを使用するためにDevise::SessionsControllerから継承する必要があります。

module DeviseTokenAuth 
    class SessionsController < Devise::SessionsController 
    skip_before_action :authenticate_user!, only: [:create, :destroy] 
    end 
end 
+0

私自身のSessionsControllerを作成したくありません。私はDeviseTokenAuth :: SessionsControllerを使いたいと思います。 – Mo3z

+0

私は恐れますが、私は既存のdevise_token_authルートを利用することはできません。 – Mo3z

+0

@ Mo3zどういう意味ですか? –

関連する問題