Rails 5使用bcrypt在授权中登录​​毛刺

时间:2018-03-14 08:53:16

标签: authentication ruby-on-rails-5

我在rails 5中使用了一个关于身份验证的方便教程,而没有使用设计gem(教程here

退出后,系统会立即将用户重定向到' / login',用户无法立即重新登录。如果他们刷新页面,则没有问题 - 身份验证正常工作,但无需导航,然后返回/登录或刷新页面,用户无法立即输入凭据并重新登录。相反,当他们输入凭据并点击“提交”时。什么都没发生(凭据保留在字段中,按钮看起来像是被点击了,但没有其他事情发生)

以下是会话控制器的相关代码(与教程中的步骤13相同)

  def create
    user = User.find_by_email(params[:email])
    # If the user exists AND the password entered is correct.
    if user && user.authenticate(params[:password])
      # Save the user id inside the browser cookie. This is how we keep the user 
      # logged in when they navigate around our website.
      session[:user_id] = user.id
      redirect_to '/'
    else
    # If user's login doesn't work, send them back to the login form.
      redirect_to '/login'
    end
  end

  def destroy
    session[:user_id] = nil
    redirect_to '/login'
  end

注意:教程说Rails 4,但我使用的是rails 5,其中一切似乎都有相同的一个小例外;我不得不将before_filter更改为before_action

1 个答案:

答案 0 :(得分:0)

如果任何人都可以使用它,我可以通过关闭链接中的涡轮链接来解决此问题:

在application.html.erb中,替换 <%= link_to "Logout", '/logout' %>

<%= link_to "Logout", '/logout', data: { turbolinks: false } %>