背景:
我继承了一个较旧的 Rails 应用程序,我正在尝试设置一个本地副本,并且遇到了用于身份验证的 Authlogic gem 的问题。设置如下:
- Rails 2.3.18 应用程序,它是一个遗留应用程序
- 使用 Authlogic 进行身份验证。
- 无法创建有效会话
测试:
该应用程序有一个用户模型,它是使用AuthLogic Quick Rails 示例中概述的简单步骤构建的。登录步骤路由到 UserSessions 控制器以获取用户参数(登录名和密码),创建一个新会话,然后尝试保存会话,如下所示:
UserSessionsController.rb
....
@user_session = current_account.user_sessions.new(params[:user_session])
if @user_session.save
# login success
....
else
# login failure
end
这是失败的最后一步。当我检查 @user_session 对象上的错误时,我得到字符串“登录无效”
此外,我已经通过 rails 控制台对此进行了测试,并按照文章中的说明进行操作: 在控制台中使用 Authlogic。这基本上要求您在控制台中执行:
Authlogic::Session::Base.controller = Authlogic::ControllerAdapters::RailsAdapter.new(self)
当我通过如下调用模拟 UserSession 创建时使用此方法:
us=UserSession.new(:login=> "user@gmail.com", :password => "secret")
我得到错误: #<UserSession: no credentials provided>
现在在这两种情况下,用户身份都存在于数据库中。
任何有关故障诊断的提示/建议都将受到欢迎!