无效用户时导出会话问题

时间:2013-12-16 19:10:42

标签: ruby-on-rails session authentication

现在我正在尝试对用户进行身份验证。这个过程有效。现在,用户的登录名具有字段用户名和密码。如果用户键入正确的信息,则可以正常工作。如果用户键入有效的用户名和错误的密码,则可以使用。如果用户键入无效的用户名,则无效。这是我在会话控制器中的创建操作:

  def create
    user = User.find_by_username(params[:username])
    redirect_to root_url if user == nil
    if user.password == params[:password]
      session[:user_id] = user.id
      redirect_to user_path(user.id), notice: "Logged in!"
    else
      flash.now.alert = "not logged in"
      redirect_to root_url
    end
  end

我得到的错误是用户没有方法密码。我知道这一点并加入

redirect_to root_url if user == nil

我也有线

redirect_to root_url unless user.password

这两个都无法正常工作,也没有重定向回根网址。

1 个答案:

答案 0 :(得分:0)

这应该这样做

if user && user.password == params[:password]