私はRails iPhoneアプリにいくつかのAPIを提供するアプリを持っています。正しいcsrfトークンを取得することを気にせずにリソースに簡単に投稿できるようにしたいと思います。ここではstackoverflowで動作しますが、Rails 3では動作しません。
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]
Rails3では、特定のメソッドに対してコントローラーのcsrfトークンを無効にできます。
protect_from_forgery :except => :create
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