web-dev-qa-db-ja.com

Rails 3でCSRFトークンをオフにする

私はRails iPhoneアプリにいくつかのAPIを提供するアプリを持っています。正しいcsrfトークンを取得することを気にせずにリソースに簡単に投稿できるようにしたいと思います。ここではstackoverflowで動作しますが、Rails 3では動作しません。

97
Simone D'Amico

CSRFを無効にするコントローラーで、次のチェックを行います。

skip_before_action :verify_authenticity_token

または、いくつかのメソッドを除くすべてに対して無効にするには:

skip_before_action :verify_authenticity_token, :except => [:update, :create]

または、指定したメソッドのみを無効にするには:

skip_before_action :verify_authenticity_token, :only => [:custom_auth, :update]

詳細: RoR Request Forgery Protection

166
Mike Lewis

Rails3では、特定のメソッドに対してコントローラーのcsrfトークンを無効にできます。

protect_from_forgery :except => :create 
105
Markus Proske

Rails 4を使用すると、skip_before_action の代わりに skip_before_filter

# Works in Rails 4 and 5
skip_before_action :verify_authenticity_token

または

# Works in Rails 3 and 4 (deprecated in Rails 4 and removed in Rails 5)
skip_before_filter :verify_authenticity_token
31
jason328