您不需要對UserSessionController
做任何事情,因爲該控制器只會處理登錄表單提交和註銷。
Authlogic和authenticate_with_http_basic
是互不相關的。如果你想通過HTTP基本認證,你只需要創建一個方法來使用Rails提供的方法進行認證,並將該方法放在before_filter
上。通過HTTP身份驗證登錄,我認爲每個請求都應該使用用戶名和密碼。
所以最後,你ProductsController
會像通過HTTP驗證這
class ProductsController < ApplicationController
before_filter :authenticate_via_http_basic
# In case you have some method to redirect user to login page, skip it
skip_before_filter :require_authentication
...
protected
def authenticate_via_http_basic
unless current_user
authenticate_with_http_basic do |username, password|
if user = User.find_by_username(username)
user.valid_password?(password)
else
false
end
end
end
end
嗨,這是現在的工作。但是在控制器上集成http_basic_athentication之後,基於UserSession的身份驗證現在不起作用。我總是得到http_basic_athentication登錄提示符。 – randika 2009-11-11 13:21:09
對不起,延遲迴復。我更新了答案:) – sikachu 2009-11-16 09:48:21