我最近想在heroku上部署我的Rails应用程序但是想要将它与外界隔离,直到我在heroku上测试它。为了屏蔽它,我使用了authenticate_or_request_with_http_basic。但是,在通过基本身份验证并希望登录(使用authlogic登录系统)之后,我发现authlogic不记得会话(例如current_user == nil)。
如果没有authenticate_or_request_with_http_basic before_filter,则authlogic会话可以正常工作。
有人知道这是为什么以及如何让两者一起工作吗?
提前致谢。
PS:为了清楚起见,我的目标是不,以便能够将authlogic用户与authenticate_or_request_with_http_basic一起使用。
PPS:我使用Rails 3和git://github.com/odorcicd/authlogic.git
答案 0 :(得分:6)
我也有这个问题!我打算试着看看它是否可以拿出任何东西......
编辑:修复是在您的Authlogic会话中禁止HTTP基本身份验证...
class UserSession < Authlogic::Session::Base
allow_http_basic_auth false
end
我很确定这是Authlogic中的一个错误。问题是这个方法:
Authlogic::Session::HttpAuth::InstanceMethods#allow_http_basic_auth?
在使用HTTP Basic时返回true,即使在应用程序的其他位置也是如此。