gpt4 book ai didi

ruby-on-rails - Rails 401 身份验证错误的自定义处理程序

转载 作者:行者123 更新时间:2023-12-03 07:39:59 26 4
gpt4 key购买 nike

我有一个 API Controller ,重要的是所有错误响应都以 JSON 格式返回。

以下设置处理操作引发的错误,但不处理前过滤器中引发的身份验证错误 - 它抛出 401,rails 作为 text/html 发送。

  class ApiController < ActionController::Base

rescue_from StandardError, with: :handle_errors
before_filter :restrict_access

def restrict_access
authenticate_or_request_with_http_token do |token, options|
false # Force authentication error
end
end

def handle_errors(exception)
render :json => { :errors => { :error => exception.message} }.to_json, :status => 400
end

我需要做什么来处理身份验证错误?

最佳答案

在@Gjaldon 的回答帮助我弄明白之后,我最终覆盖了 request_http_token_authentication在我的 API Controller 中:

def request_http_token_authentication(realm = "Application")  
self.headers["WWW-Authenticate"] = %(Token realm="#{realm.gsub(/"/, "")}")
self.__send__ :render, :json => { :error => "HTTP Token: Access denied. You did not provide an valid API key." }.to_json, :status => :unauthorized
end

关于ruby-on-rails - Rails 401 身份验证错误的自定义处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20755043/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com