Отключить токен CSRF в rails 3


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

3 88

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]

Подробнее: Защита От Подделки Запроса RoR

в 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