Я не понимаю Authentication в Yii2 . В Yii 1 был класс идентификации, где нам нужно работать с методом authentication() и вызывать CWebUser::login() для достижения наших целей.
Каковы основные процессы аутентификации в Yii 2 ? И как это работает?
Не могли бы вы объяснить следующее:
Чтобы ответить на ваши вопросы, необходимо понять одно: Yii2 предоставляет некоторые вспомогательные классы / интерфейсы для разработчиков, которые легко реализуют аутентификацию пользователей, но не всегда требуется следовать или использовать любой из них. Поэтому мой следующий ответ объясняет поведение некоторых классов по умолчанию .
И всегда является хорошей отправной точкой для просмотра шаблона Yii2 Advanced и исходного кода, чтобы понять рабочий процесс фреймворка, на мой взгляд это удивительно легко читать.
Yii2 предоставляет ряд основных компонентов в статическом контексте, вы всегда можете вызывать их через Yii::$app-> . Одним из основных компонентов является user , на самом деле это экземпляр yii\web\User и все магии по умолчанию находятся внутри этого класса.
Кроме того, вы также можете использовать другие основные компоненты. Я не уверен, насколько глубоко вы хотите понять, как это работает, если я не дам вам достаточно глубоких объяснений, я настоятельно рекомендую вам прочитать исходный код. У вас будет исходный код на руке, как только вы создадите composer install , или перейдите в их github, чтобы получить трассировку кода – https://github.com/yiisoft/yii2/tree/master/framework
Во-первых, у вас должен быть класс User который реализует IdentityInterface и расширяет ActiveRecord , см. Пример в шаблоне Advance: https://github.com/yiisoft/yii2-app-advanced/blob/master/common/models/User.php ,
И в вашей конфигурации установите $identityClass user компонента в указанный User класс. Это минимальная настройка для User .
Затем у вас должен быть контроллер с методом, сопоставленным с URL-адресом запроса, например, «/ login». В этом методе вы должны использовать свой путь для извлечения экземпляра User – $u . Это место, где должна быть ваша аутентификация.
Затем вы можете вызвать Yii::$app->user->login($u) для входа; Yii::$app->user->logout() для выхода из системы.
После входа в систему вы можете получить текущий экземпляр пользователя через Yii::$app->user->identity .
Это зависит от вас, в зависимости от ваших потребностей. Шаблон просто дает вам представление о том, как создать класс User ActiveRecord, но не ограничен его – username и passwordHash – это нечто очень распространенное, но вы всегда можете иметь свою собственную схему.
Я не совсем понимаю проблему. Надеюсь, другие могут помочь.
Если вы решили использовать RESTful, поддерживаемый фреймворком, не забудьте реализовать findIdentityByAccessToken() в вашем классе User , см. Подробности в http://www.yiiframework.com/doc-2.0/guide-rest-authentication.html.
Я могу думать об одном в этот момент, может добавить другие вещи позже.