此方法允許您實現基本的HTTP身份驗證(彈出一個小對話框詢問用戶名和密碼的類型)。這通常是限制訪問開發網站或管理區域的好方法。例如:
class AdminController < ApplicationController
before_filter :authenticate
def authenticate
authenticate_or_request_with_http_basic('Administration') do |username, password|
username == 'admin' && password == 'password'
end
end
end
這個功能將要麼使對基本的HTTP驗證用戶名和密碼的請求,或者已經進入後,它實際上將檢查驗證是正確的。換句話說,該功能將撥打authenticate_with_http_basic或撥打電話request_http_basic_authentication。你可以閱讀更多關於它並看到更多的例子here。您通常會調用authenticate_or_request_with_http_basic而不是調用authenticate_with_http_basic或request_http_basic_authentication,因爲前一個函數將適用於後者的所有函數。
P.S:authenticate_with_http_basic不使用POST變量,它使用頭信息獲取用戶名和密碼(request.env ['HTTP_AUTHORIZATION'])。您可以查看有關授權功能here的更多信息。
確實從POST變量'username'和''password'提取authenticate_with_http_basic',就是這樣?什麼是最基本的描述? – 2011-02-24 17:33:56
我也將此添加到我的文章中。簡而言之,它不使用POST變量,它使用請求頭中的request.env數據。 – 2011-02-24 17:44:01
HTTP頭中的用戶名和密碼是什麼情況?登錄形式('/ session/new'或'/ login')POST到'/ session'和post變量是:'authenticity_token = TrtiGrt8CcDl9DiVbZLA6Yi24g%2FQ6qazMtOgwlJqpjc%3D&login = foo&password = 123123&remember_me = 1&commit = Log + in' so我以爲用戶登錄通常是通過POST變量? – 2011-02-24 20:39:54