От автора: приветствую вас, друзья. Мы продолжаем цикл статей, посвященных знакомству с фреймворком Yii2. В этой статье мы продолжим работу с темой регистрации пользователя в Yii2, а также реализуем авторизацию зарегистрированных пользователей.
Итак, в двух предыдущих статьях мы с вами реализовали регистрацию. Данные пользователя успешно сохраняются в БД. Теперь пришла очередь авторизации. Здесь мы вновь воспользуемся моделью User, поскольку именно там находятся нужные методы.
По умолчанию в Yii уже реализована авторизация, но она локальна, т.е. есть пара тестовых пользователей, данные которых представлены в виде массива, записанного в свойство $users модели.
Наша задача – использовать в качестве источника данных не массив, а таблицу пользователей в БД. Соответственно, можем смело удалить или закомментировать данный массив, он нам больше не понадобится.
Теперь некоторые правки в методы модели. Метод findIdentity() обращается к уже неиспользуемому массиву $users. Давайте перепишем его, реализовав обращение к БД:
1 2 3 4 |
public static function findIdentity($id) { return static::findOne($id); } |
Теперь метод получает пользователя по ID. Следующий метод – findByUsername() – возвращает пользователя по его логину. Давайте также изменим его:
1 2 3 4 |
public static function findByUsername($username) { return static::findOne(['username' => $username]); } |
И, наконец, метод validatePassword(). Как вы помните, пароль в БД у нас зашифрован, поэтому при валидации пароля мы должны его также шифровать, чтобы сравнить полученный хэш с тем, который записан в БД.
1 2 3 4 |
public function validatePassword($password) { return \Yii::$app->security->validatePassword($password, $this->password); } |
Собственно, указанных шагов уже должно быть достаточно, чтобы пользователь смог авторизоваться. Давайте попробуем ввести логин и пароль, указанные при регистрации. Если все сделано верно, тогда после авторизации в меню мы должны увидеть свой логин.
Ну что же, задача выполнена. На этом, пожалуй, все. Больше о фреймворке вы можете узнать из наших бесплатных или платных уроков. Также создание простейшего блога на Yii2 можно посмотреть в этом цикле уроков.
Комментарии (6)