У меня есть приложение rails, которое обслуживает apis для приложения iphone. Я хочу, чтобы иметь возможность просто размещать на ресурсе, не обращая внимания на получение правильного токена csrf. Я пробовал какой-то метод, который я вижу здесь в stackoverflow, но кажется, что они больше не работают на рельсах 3. Спасибо, что помогли мне.
Отключить токен CSRF в рельсах 3
Ответ 1
В контроллере, где вы хотите отключить 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
Ответ 2
В Rails3 вы можете отключить токен csrf в контроллере для определенных методов:
protect_from_forgery :except => :create
Ответ 3
С 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