设计劫持401响应

时间:2011-01-21 08:50:55

标签: ruby-on-rails devise

我正在尝试创建一个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 个答案:

答案 0 :(得分:4)

什么是Devise版本?这个维基页面表明它应该适用于1.2。

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

答案 1 :(得分:0)

我认为来自Devise wiki的这个页面可以帮到你。 How To Use HTTP Authentication in Devise