Yii Framework 2.0 Вход с помощью базы данных пользователей

Я пытался найти в Интернете, как написать код в Yii framework 2.0, чтобы пользователь мог войти с учетными данными, хранящимися в базе данных, а не из массива, с префиксом в моделях / User.php. Я знаю, как это сделать в Yii 1. Но в Yii 2.0 я действительно не знаю, как это сделать. Поскольку Yii 2.0 еще не выпущен (доступна только бета-версия), я не смог найти много учебников Yii 2.0 в Интернете о входе в систему с базой данных.

Вы можете реализовать управление пользователями базы данных с помощью таких расширений, как https://github.com/amnah/yii2-user .

ИЛИ

Если вы хотите написать свой собственный скрипт для управления пользователями, вы можете переопределить идентификатор iii2.

В разделе компонента вашей конфигурации добавьте:

'user' => [ 'identityClass' => 'app\models\User', 'enableAutoLogin' => true, ], 

Обратите внимание, что ваша модель пользователя ДОЛЖНА ВЫПОЛНЯТЬ \ yii \ web \ IdentityInterface

Вот пример класса модели, который можно использовать для реализации проверки подлинности базы данных

 namespace app\models; //app\models\gii\Users is the model generated using Gii from users table use app\models\gii\Users as DbUser; class User extends \yii\base\Object implements \yii\web\IdentityInterface { public $id; public $username; public $password; public $authKey; public $accessToken; public $email; public $phone_number; public $user_type; /** * @inheritdoc */ public static function findIdentity($id) { $dbUser = DbUser::find() ->where([ "id" => $id ]) ->one(); if (!count($dbUser)) { return null; } return new static($dbUser); } /** * @inheritdoc */ public static function findIdentityByAccessToken($token, $userType = null) { $dbUser = DbUser::find() ->where(["accessToken" => $token]) ->one(); if (!count($dbUser)) { return null; } return new static($dbUser); } /** * Finds user by username * * @param string $username * @return static|null */ public static function findByUsername($username) { $dbUser = DbUser::find() ->where([ "username" => $username ]) ->one(); if (!count($dbUser)) { return null; } return new static($dbUser); } /** * @inheritdoc */ public function getId() { return $this->id; } /** * @inheritdoc */ public function getAuthKey() { return $this->authKey; } /** * @inheritdoc */ public function validateAuthKey($authKey) { return $this->authKey === $authKey; } /** * Validates password * * @param string $password password to validate * @return boolean if password provided is valid for current user */ public function validatePassword($password) { return $this->password === $password; } } 

Надеюсь, это будет полезно для вас. Приветствия 🙂

Проверьте приложение Yii2:

https://github.com/yiisoft/yii2-app-advanced

Там полная реализация регистрации, входа, resetPassword для пользователей, хранящихся в БД.