开发者

Rails: Return a 401?

I'd like to return a HTTP 401 error as part of my permission_denied method for declarative_authorization.

# triggered when a user accesses a page that they don't have access to
def permission_denied
  # render my defa开发者_如何学Goult 401 error page?
end

How would I do this? (Pardon the question if it's stupid... I know how to render the 401.html page in my public directory, but I don't think it returns the 401 HTTP header, which is what I'm after.)


You can add the :status option

def permission_denied
  render :file => "public/401.html", :status => :unauthorized
end


Here so you don't have to dig through comments for a modern answer.

The previous answer has been deprecated in Rails 5.1

Throw any of these into your controller action:

Render A File/Template

render :file => "public/401", :status => :unauthorized

Render JSON

render status: :unauthorized, json: { error: "You are not authorized to access this resource. Verify that you are passing passing your token." }

Render Nothing

head :unauthorized

See ActionController#head

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜