Railsの特定のアクションの認証トークンを無視するにはどうすればよいですか?


168

認証トークンをチェックしたくない特定のアクションがある場合、Railsにチェックのスキップを指示するにはどうすればよいですか?

回答:


230

Rails 4の場合:

skip_before_action :verify_authenticity_token, except: [:create, :update, :destroy]

そしてRails 3:

skip_before_filter :verify_authenticity_token

以前のバージョンの場合:

個々のアクションについて、次のことができます。

protect_from_forgery :only => [:update, :destroy, :create]
#or
protect_from_forgery :except => [:update, :destroy, :create]

コントローラ全体に対して、次のことができます。

skip_before_action :verify_authenticity_token

特定のコントローラーと特定のアクションについては、skip_before_filter:verify_authenticity_token、:only =>:my_unprotected_actionを使用します。私は答えを見つけるためにここに来ました:これはひどい考えですか?ajax応答がセッションを食い尽くすので、これを実行しようとしています。
Danny

9
レール5.2の場合はを使用しますskip_forgery_protectionAPIドキュメントを参照してください。
アーロンブリッケンリッジ

27

Rails4あなたが使用skip_before_actionexceptたりonly

class UsersController < ApplicationController
  skip_before_action :verify_authenticity_token, only: [:create]
  skip_before_action :some_custom_action, except: [:new]

  def new
    # code
  end

  def create
    # code
  end

  protected
  def some_custom_action
    # code
  end
end
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.