我有一个Rails 2.3.x应用程序,根据Authlogic Github示例实现User模型中的act_as_authentic和UserSession模型。我正在实现一个API,允许从iPhone访问。将通过https使用HTTP基本身份验证(不会实现单一访问令牌)。每个API调用都需要用户名/密码才能访问。
例如,我可以通过调用http://username:password@localhost:3000/books.xml来访问API。如果使用单一访问令牌,Authlogic将不会保留。但我正在使用HTTP Basic,我认为Authlogic会为API调用创建会话,而不是我的API方法。因此,对于我所做的每个API调用,都会创建新的会话对象。因此在我看来,这会很快加载服务器资源。听起来不错。
另一种方法是对API控制器使用Rails authenticate_or_request_with_http_basic。添加before_filter的示例:
def require_http_auth_user
authenticate_or_request_with_http_basic do |username, password|
if @current_user = User.find_by_email(username)
@current_user.valid_password?(password)
else
false
end
end
end
这将绕过Authlogic UserSession,只使用User模型。但这将涉及在应用程序中使用单独的身份验证代码。
任何人都有任何意见,可以分享他们的经验吗?感谢
答案 0 :(得分:1)
为了让UserSession成为模型对象,我最终变得更容易了。希望这可以帮助。链接中包含相对有效使用的代码示例,如果还有其他我可以帮助您的内容,请使用lmk。
http://www.corprew.org/blog/2010/01/27/authlogic-and-objectiveresource/