2

無効な資格情報を username:password on rails using として挿入すると、そのデフォルトメッセージを変更しようとして苦労していますauthenticate_or_request_with_http_basic

たとえば、この認証が必要なメソッドで curl リクエストを行った場合、間違ったユーザー名とパスワードを挿入すると返されますHTTP Basic: Access denied.

したがって、この場合、特定の XML 形式の文字列を使用してこのメ​​ッセージをカスタマイズできるようにしたいと考えています (Twitter API のように)。それは可能ですか?

前もって感謝します

4

1 に答える 1

7

ログイン プロンプトのメッセージをカスタマイズする場合は、メッセージをメソッド呼び出しに渡すだけです。

authenticate_or_request_with_http_basic "My custom message" do |user_name, password|
  user_name == USER_NAME && password == PASSWORD
end

Rails 2.3.4 ソース コードによると、最終的なエラー メッセージをカスタマイズする場合は、HTTP ダイジェスト認証に対してのみこれを行うことができます。

def authentication_request(controller, realm, message = nil)
  message ||= "HTTP Digest: Access denied.\n"
  authentication_header(controller, realm)
  controller.__send__ :render, :text => message, :status => :unauthorized
end

基本認証には、メソッドにハードコーディングされたエラー メッセージがあります。

def authentication_request(controller, realm)
  controller.headers["WWW-Authenticate"] = %(Basic realm="#{realm.gsub(/"/, "")}")
  controller.__send__ :render, :text => "HTTP Basic: Access denied.\n", :status => :unauthorized
end
于 2009-11-17T08:16:28.227 に答える