Аутентифицировать пользователей при входе - PullRequest
1 голос
/ 14 февраля 2020

Я новичок, и я делаю Rails Tuturial https://www.learnenough.com/ruby-on-rails-6th-edition-tutorial/basic_login#sec -finding_and_authenticating_a_user>

Последний урок я create новый user, и я проверяю в rails``console, используя booleans, чтобы доказать, соответствуют ли пользователи email и password сеансу login.

Это мой код в файле session controller:

class SessionsController < ApplicationController

  def new
  end

  def create
     user = User.find_by(email: params[:session][:email].downcase)
    if user && user.authenticate(params[:session][:password])
    else
      render 'new'
    end
  end

  def destroy
  end
end

И для проверки в консоли rails:

user = User.first
=> Идентификатор пользователя: 1, имя: "Учебное пособие по Rails", электронная почта: "example@railstutorial.org", create_at: "2020-02-13 01:04:12", updated_at: "2020-02-13 01:04:12", password_digest: [FILTERED]

!! (user && user .authenticate ('railst1234'))
=> false

Здесь возникает вопрос, почему возвращается FALSE, если адрес электронной почты и пароль содержат информацию. предположим, что прав?

1 Ответ

0 голосов
/ 14 февраля 2020

Я думаю, это потому, что вы пытаетесь аутентифицировать зашифрованный пароль, но создаете без заданного password_confirmation пользовательской модели. Вот хорошая ссылка для понимания паролей пользователя.

Это также может помочь вам, если вы не хотите зашифрованные пароли для пользователя.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...