Реєстрація користувача в Yii2. Частина 3

20

Від автора: вітаю вас, друзі. Ми продовжуємо цикл статей, присвячених знайомству з фреймворком Yii2. У цій статті ми продовжимо роботу з темою реєстрації користувача в Yii2, а також реалізуємо авторизацію зареєстрованих користувачів.

Отже, у двох попередніх статтях ми з вами реалізували реєстрацію. Дані успішно зберігаються в БД. Тепер прийшла черга авторизації. Тут ми знову скористаємося моделлю User, оскільки саме там знаходяться потрібні методи.

За замовчуванням в Yii вже реалізована авторизація, але вона локальна, тобто є пара тестових користувачів, дані яких представлені у вигляді масиву, записаного у властивість $users моделі.

Реєстрація користувача в Yii2. Частина 3

Наше завдання – використовувати в якості джерела даних не масив, а таблицю користувачів БД. Відповідно, можемо сміливо видалити або закоментувати даний масив, він нам більше не знадобиться.

Тепер деякі правки в методи моделі. Метод findIdentity() звертається до вже неиспользуемому масиву $users. Давайте перепишемо його, реалізувавши звернення до БД:

public static function findIdentity($id)
{
return static::findOne($id);
}

Тепер метод отримує користувача з ID. Наступний метод – findByUsername() – повертає користувача на його логіном. Давайте також змінимо його:

public static function findByUsername($username)
{
return static::findOne([‘username’ => $username]);
}

І, нарешті, метод validatePassword(). Як ви пам’ятаєте, пароль БД у нас зашифрований, тому при валідації пароля ми повинні його також шифрувати, щоб порівняти отриманий хеш з тим, який записаний в БД.

public function validatePassword($password)
{
return \Yii::$app->security->validatePassword($password, $this->password);
}

Власне, зазначених кроків вже має бути достатньо, щоб користувач зміг авторизуватись. Давайте спробуємо ввести логін і пароль, вказані при реєстрації. Якщо все зроблено вірно, тоді після авторизації в меню ми повинні побачити свій логін.

Реєстрація користувача в Yii2. Частина 3

Ну що ж, завдання виконано. На цьому, мабуть, все. Більше про фреймворку ви можете дізнатися з наших безкоштовних або платних уроків. Також створення найпростішого блогу на Yii2 можна подивитися в цьому циклі уроків.