【问题标题】:rails sessions issue when invalid user无效用户时的rails会话问题
【发布时间】:2013-12-17 03:23:00
【问题描述】:

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

  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

这两个都不起作用,也没有重定向回根 url。

【问题讨论】:

  • 表单是登录表单。正在管理员中创建用户。我只是想验证它是否是用户。问题是如果在创建操作中的 User 类用户中找不到用户名,则该用户名将变为 nil。考虑到这一点,我试图说如果用户是 nil 然后回到根 url。那部分不起作用。
  • if user && user.password == params[:password] ????

标签: ruby-on-rails session authentication


【解决方案1】:

应该这样做

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

【讨论】:

    猜你喜欢
    • 2012-04-08
    • 2012-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多