我想使用“authenticate_ with_ http_ basic”,但我无法得到它 工作
在我的RoR应用程序中,Authlogic工作正常,我正在使用用户会话。虽然保持这种方法现在我需要使用authenticate_with_http_basic.I有一个iPhone SDK应用程序,现在我需要从我的webapp获取一些产品并显示为列表。所以我假设我需要像这样将请求发送到我的webapp; http://username:password@192.168.1.9/products/
所以我的问题是验证这个用户名和密码以及我需要对UserSession控制器做些什么?
答案 0 :(得分:5)
您不需要对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
答案 1 :(得分:1)
通过HTTP Auth进行身份验证现已集成到AuthLogic中,默认情况下已启用。