您不需要对 执行任何操作UserSessionController
,因为该控制器只会处理登录表单提交和注销。
Authlogic 和authenticate_with_http_basic
彼此无关。如果你想通过 HTTP basic 进行身份验证,你只需要创建一个使用 Rails 提供的方法进行身份验证的方法,并将该方法放在before_filter
. 通过 HTTP 身份验证登录,我假设每个请求都必须输入用户名和密码。
所以最后,你ProductsController
会是这样的
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