如果你想在登錄提示自定義消息,只是將消息傳遞給方法調用。
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
感謝weppos, 我查過,以前也是如此,但事情是在這種情況下,我使用BCrypt作爲我的密碼加密,所以我不知道我是否可以使用HTTP摘要驗證與它,另一件事是,有沒有什麼辦法可以從http基本覆蓋這個功能?我嘗試過沒有成功,因爲它看起來像Twitter API也使用Http Basic,它們能夠配置最終的錯誤消息,這有點奇怪。 – zanona 2009-11-17 09:34:22
是的,用猴子修補你幾乎可以覆蓋所有的東西......但這並不總是一個好主意。 – 2009-11-17 10:55:51