Придумайте угон 401 ответа - PullRequest
2 голосов
/ 21 января 2011

Я пытаюсь создать API, и для одного из своих действий я ограничиваю его только администраторами. Для этого я использую before_filter, который выглядит так:

def authorize_admin!
  if !@current_user.admin?
    error = { :error => "You must be an admin to do that." }
    render params[:format].to_sym => error, :status => 401
  end
end

Проблема в том, что когда мы отправляем ответ 401, ошибка преобразуется в:

"{\"error\":\"You need to sign in or sign up before continuing.\"}"

Это ответ, который Devise отправляет обратно, когда вы отправляете ответ 401.

Есть ли способ отключить эту функцию?

Ответы [ 2 ]

4 голосов
/ 21 января 2011

Что такое версия Devise?Эта вики-страница предполагает, что она должна работать на 1.2.

https://github.com/plataformatec/devise/wiki/How-To:-Provide-a-custom-failure-response-with-Warden

0 голосов
/ 21 января 2011

Я думаю, что эта страница из вики Devise может помочь вам. Как использовать HTTP-аутентификацию в Devise

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...