Отключить токен CSRF в рельсах 3 - PullRequest
97 голосов
/ 15 апреля 2011

У меня есть приложение rails, которое подает какой-то apis приложению для iphone.Я хочу иметь возможность просто публиковать на ресурсе, не думая о получении правильного токена csrf.Я попробовал какой-то метод, который я вижу здесь в stackoverflow, но кажется, что он больше не работает на рельсах 3. Спасибо за помощь.

Ответы [ 3 ]

165 голосов
/ 15 апреля 2011

В контроллере, где вы хотите отключить 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

105 голосов
/ 15 апреля 2011

В Rails3 вы можете отключить токен csrf в вашем контроллере для определенных методов:

protect_from_forgery :except => :create 
31 голосов
/ 09 сентября 2013

В 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
...