Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Authlogic和无效会话_Ruby On Rails_Ruby_Authlogic - Fatal编程技术网

Ruby on rails Authlogic和无效会话

Ruby on rails Authlogic和无效会话,ruby-on-rails,ruby,authlogic,Ruby On Rails,Ruby,Authlogic,背景: 我继承了一个旧的Rails应用程序,我正在尝试设置一个本地副本,但在用于身份验证的Authlogic gem中遇到了问题。设置如下所示: Rails 2.3.18应用程序是一个遗留应用程序 使用Authlogic进行身份验证 无法创建有效的会话 测试: 应用程序有一个用户模型,它是使用中概述的简单步骤构建的。登录步骤路由到UserSessions控制器以获取用户参数(登录和密码),创建一个新会话,然后尝试保存会话,如下所示: UserSessionsController.rb ..

背景

我继承了一个旧的Rails应用程序,我正在尝试设置一个本地副本,但在用于身份验证的Authlogic gem中遇到了问题。设置如下所示:

  • Rails 2.3.18应用程序是一个遗留应用程序
  • 使用Authlogic进行身份验证
  • 无法创建有效的会话
测试

应用程序有一个用户模型,它是使用中概述的简单步骤构建的。登录步骤路由到UserSessions控制器以获取用户参数(登录和密码),创建一个新会话,然后尝试保存会话,如下所示:

UserSessionsController.rb

....

@user_session = current_account.user_sessions.new(params[:user_session])

if @user_session.save
   # login success
   ....
else
  # login failure
end
这是失败的最后一步。当我检查@user\u会话对象上的错误时,我得到的字符串是“登录无效”

此外,我已经通过rails控制台对此进行了测试,并按照文章中的说明进行了操作:。这基本上需要在控制台中执行:

Authlogic::Session::Base.controller = Authlogic::ControllerAdapters::RailsAdapter.new(self)
在通过以下调用模拟UserSession创建时使用此方法:

us=UserSession.new(:login=> "user@gmail.com", :password => "secret")
我得到错误:
#

现在,在这两种情况下,用户标识都存在于数据库中


欢迎提供任何故障诊断提示/建议

看起来您正在尝试访问
创建
操作中的
活期账户
便利方法,但您可能尚未登录,因此我不确定
活期账户
来自何处。以下代码段是否可以替代您现有的
@user\u会话
作业

# app/controllers/user_sessions_controller.rb
@user_session = UserSession.new(params[:user_session])

看起来您正在尝试访问
create
操作中的
current\u account
便利方法,但您可能尚未登录,因此我不确定
current\u account
来自何处。以下代码段是否可以替代您现有的
@user\u会话
作业

# app/controllers/user_sessions_controller.rb
@user_session = UserSession.new(params[:user_session])

感谢您的建议-将尝试进一步评论。运气不好-仍然失败,出现错误[“登录无效”]。怀疑UserSession可能存在另一个问题。是否已验证您使用的凭据是否正确?也许可以尝试创建一个全新的用户,例如,
UserSession.create(:login=>“bjohnson”,:password=>“我的密码”,:memory_me=>true)
。然后尝试登录到该帐户?谢谢-成功了。我创建了一个新用户,并能够验证它是否正常工作。感谢您的建议。感谢您的建议-将尝试进一步评论。运气不好-仍然失败,出现错误[“登录无效”]。怀疑UserSession可能存在另一个问题。是否已验证您使用的凭据是否正确?也许可以尝试创建一个全新的用户,例如,
UserSession.create(:login=>“bjohnson”,:password=>“我的密码”,:memory_me=>true)
。然后尝试登录到该帐户?谢谢-成功了。我创建了一个新用户,并能够验证它是否正常工作。谢谢你的建议。