- Аутентификация ¶
- yii\web\User Configuration ¶
- Реализация yii\web\IdentityInterface ¶
- Использование yii\web\User ¶
- События аутентификации ¶
- Yii2, получить ID текущего (активного) пользователя
- Рекомендуется
- Комментарии
- Аутентификация ¶
- yii\web\User Configuration ¶
- Реализация yii\web\IdentityInterface ¶
- Использование yii\web\User ¶
- События аутентификации ¶
- Получить имя пользователя в yii2
- 5 ответов 5
- Тип тенденции
Аутентификация ¶
Аутентификация — это процесс аутентификации пользователя. Как правило, идентификатор (например, имя пользователя или адрес электронной почты) и секретный токен (например, пароль или ключ доступа) используются для определения того, является ли пользователь тем, кем он себя называет. Аутентификация — основная функция формы входа.
Yii предоставляет структуру авторизации с несколькими компонентами для поддержки процесса входа. Чтобы использовать эту платформу, необходимо сделать следующее:
- Настроить интерфейсный компонент;
- Создайте класс, реализующий интерфейс yii\web\IdentityInterface.
yii\web\User Configuration ¶
Пользовательский компонент управляет состоянием аутентификации пользователя. Это требует, чтобы вы предоставили класс идентификации, который будет содержать фактическую логику проверки подлинности. В следующей конфигурации приложения класс идентификации для пользователя установлен как app\models\User , реализация которого будет объяснена в следующем разделе:
Реализация yii\web\IdentityInterface ¶
класс идентификации должен реализовать yii\web\IdentityInterface, который содержит следующие методы:
- findIdentity() — этот метод находит экземпляр класса идентификации, используя идентификатор имени пользователя. Этот метод используется, когда состояние аутентификации должно сохраняться между сеансами.
- findIdentityByAccessToken() — этот метод находит экземпляр класса идентификации с помощью токена доступа. Метод используется при необходимости. аутентифицирует пользователя только с помощью секретного токена (например, в приложениях RESTful, которые не сохраняются между запросами).
- getId(): Этот метод возвращает идентификатор пользователя, представленный этим экземпляром удостоверения.
- getAuthKey() — этот метод возвращает ключ, используемый для аутентификации на основе файлов cookie. Ключ сохраняется в файле cookie проверки подлинности, а затем сравнивается с версией на сервере, чтобы убедиться в правильности файла cookie проверки подлинности.
- validateAuthKey() — этот метод реализует логику проверки ключа для аутентификации на основе файлов cookie.
Если какой-либо из методов не требуется, вы можете реализовать их с пустым телом. Например, если у вас есть приложение RESTful, которое не сохраняет состояние между запросами, вы можете реализовать только findIdentityByAccessToken() и getId(), оставив остальные методы пустыми.
В следующем примере класс идентификации реализован как класс активной записи, связанный с таблицей пользователей.
Как объяснялось выше, вам нужно реализовать getAuthKey() и validateAuthKey() только в том случае, если ваше приложение использует только аутентификацию на основе файлов cookie. В этом случае вы можете использовать следующий код для создания ключа аутентификации для каждого пользователя и сохранения его в таблице пользователей:
Примечание: Не путайте класс идентификации пользователя. с классом yii\web\User. Первый — это класс, реализующий логику аутентификации пользователя. Он часто реализуется как класс. Активная запись, связанная с некоторым постоянным хранилищем, содержащая информацию о пользователи. Второй — это класс компонента приложения, отвечающий за управление состоянием аутентификации пользователя.
Использование yii\web\User ¶
Класс yii\web\User в основном используется как часть пользовательского приложения.
Вы можете получить идентификатор текущего пользователя с помощью выражения Yii ::$app->user->identity. Возвращает экземпляр класса удостоверений, который представляет текущего пользователя, прошедшего проверку подлинности, или null, если текущий пользователь не прошел проверку подлинности (например, гость). Следующий код показывает, как получить дополнительную информацию, связанную с аутентификацией, из yii\web\User:
Чтобы войти в систему как пользователь, вы можете использовать следующий код:
yii\web\User метод : :login() устанавливает идентификатор текущего пользователя в yii\web\User. Если сеансы включены, удостоверение будет сохраняться в сеансе, поэтому состояние состояния проверки подлинности будет сохраняться в течение всего сеанса. Если вход на основе файлов cookie (так называемый вход «запомнить меня») включен, идентификационные данные также сохраняются в файле cookie, чтобы можно было восстановить состояние аутентификации пользователя на время действия файла cookie.
Чтобы включить вход в систему на основе файлов cookie вы должны установить для yii\web\User::$enableAutoLogin значение true в конфигурации вашего приложения. Вы также можете установить время жизни, передав его при вызове метода yii\web\User::login().
.
Чтобы закрыть пользователя, просто вызовите
Примечание: выход пользователя из системы имеет смысл только в том случае, если сеансы разрешены. Метод немедленно сбрасывает состояние аутентификации, начиная с памяти, так что с сессии. И по умолчанию все данные сеанса пользователя также будут уничтожены. Если вы хотите сохранить данные сеанса, вы должны вызвать Yii::$app->user->logout(false) .
События аутентификации ¶
Класс yii\web \User вызывает различные события во время входа и выхода из системы.
- EVENT_BEFORE_LOGIN: Вызывается перед вызовом yii\web\User::login(). Если контроллер устанавливает для свойства isValid объекта значение false , процесс входа прерывается.
- EVENT_AFTER_LOGIN – Вызывается после успешного входа в систему.
- EVENT_BEFORE_LOGOUT: Вызывается перед вызовом yii\web\User::logout(). Если контроллер устанавливает для свойства isValid объекта значение false , процесс вывода будет прерван.
- EVENT_AFTER_LOGOUT — вызывается после успешного выхода из системы.
Эти события можно использовать для реализации функции аудита входа в систему, сбора онлайн-статистики пользователей. Например, в обработчике EVENT_AFTER_LOGIN вы можете записать время и IP-адрес входа в таблицу пользователей.
Страница создана в воскресенье, 10 января 2021 г., 09:27:43 + 0000
Ресурс
Yii2, получить ID текущего (активного) пользователя
Мы публикуем только работающие и проверенные примеры. Если у вас есть вопросы, задавайте их в комментариях, не стесняйтесь)
Если вам понравился опубликованный материал, поделитесь им и подпишитесь на нас в социальных сетях. сетях
Рекомендуется
Комментарии
Нет комментариев , Вы можете быть first
У нас есть постоянные объекты, они называются файлами
encoder.ukr
Публикуем материалы полезные для веб-разработчиков с подробным описанием без лишней «воды», с работающими (проверенными) примерами.
Наша главная задача — максимально просто и понятно донести материалы до читателя.
Вы можете связаться с нами по электронной почте: info@koder .ukr
или с помощью формы обратной связи
| молоко • 17.06.2022 18:34 |
Надо было указать версию рекламирующих людей
Привет, подскажите пожалуйста. Страница должна сгенерировать второй URL-адрес через 301 rev.
| Кайрат • 9 марта 2022 г. 4:40 |
Подпишитесь на рассылку и получайте первыми новые статьи.
Copyright © 2014 – 2022 by encoder.ukr. Все права защищены.
Источник
Аутентификация ¶
Аутентификация — это процесс аутентификации пользователя. Как правило, идентификатор (например, имя пользователя или адрес электронной почты) и секретный токен (например, пароль или ключ доступа) используются для определения того, является ли пользователь тем, кем он себя называет. Аутентификация — основная функция формы входа.
Yii предоставляет структуру авторизации с несколькими компонентами для поддержки процесса входа. Чтобы использовать эту платформу, необходимо сделать следующее:
- Настроить интерфейсный компонент;
- Создайте класс, реализующий интерфейс yii\web\IdentityInterface.
yii\web\User Configuration ¶
Пользовательский компонент управляет состоянием аутентификации пользователя. Это требует, чтобы вы предоставили класс идентификации, который будет содержать фактическую логику проверки подлинности. В следующей конфигурации приложения класс идентификации для пользователя установлен как app\models\User , реализация которого будет объяснена в следующем разделе:
Реализация yii\web\IdentityInterface ¶
класс идентификации должен реализовывать yii\web\IdentityInterface, который содержит следующие методы:
- findIdentity() — этот метод находит экземпляр класса идентификации, используя идентификатор пользователя. Этот метод используется, когда состояние аутентификации должно сохраняться между сеансами.
- findIdentityByAccessToken() — этот метод находит экземпляр класса идентификации с помощью токена доступа. Метод используется, когда требуется аутентификация пользователя с использованием только секретного токена (например, в приложениях RESTful, которые не сохраняют состояние между запросами).
- getId(): Этот метод возвращает идентификатор пользователя, представленный этим экземпляром удостоверения.
- getAuthKey() — этот метод возвращает ключ, используемый для аутентификации на основе файлов cookie. Ключ сохраняется в файле cookie проверки подлинности, а затем сравнивается с версией на сервере, чтобы убедиться в правильности файла cookie проверки подлинности.
- validateAuthKey() — этот метод реализует логику проверки ключа для аутентификации на основе файлы cookie.
Если какой-либо из методов не требуется, вы можете реализовать их с пустым телом. Например, если у вас есть приложение RESTful, которое не сохраняет состояние между запросами, вы можете реализовать только findIdentityByAccessToken() и getId(), оставив остальные методы пустыми.
В следующем примере класс идентификации реализован как класс активной записи, связанный с таблицей пользователей.
Как объяснялось выше, вам нужно реализовать getAuthKey() и validateAuthKey() только в том случае, если ваше приложение использует только аутентификацию на основе файлов cookie. В этом случае вы можете использовать следующий код для создания ключа аутентификации для каждого пользователя и сохранения его в таблице пользователей:
Примечание: Не путайте класс идентификации пользователя. с классом yii\web\User. Первый — это класс, реализующий логику аутентификации пользователя. Он часто реализуется как класс Active Record, связанный с каким-либо постоянным хранилищем, в котором находится пользовательская информация. Второй — это класс компонента приложения, отвечающий за управление состоянием аутентификации пользователя.
Использование yii\web\User ¶
Класс yii\web\User в основном используется как часть пользовательского приложения.
Вы можете получить идентификатор текущего пользователя с помощью выражения Yii ::$app->user->identity. Возвращает экземпляр класса удостоверений, который представляет текущего пользователя, прошедшего проверку подлинности, или null, если текущий пользователь не прошел проверку подлинности (например, гость). Следующий код показывает, как получить дополнительную информацию, связанную с аутентификацией, из yii\web\User:
Чтобы войти в систему как пользователь, вы можете использовать следующий код:
метод yii\web\User ::login() устанавливает личность текущего пользователя в yii\web\User. Если сеансы включены, удостоверение будет сохраняться в сеансе, поэтому состояние состояния проверки подлинности будет сохраняться в течение всего сеанса. Если включен вход на основе файлов cookie (так называемый вход в систему «запомнить меня»), идентификационные данные также будут храниться в файле cookie, чтобы восстановить статус аутентификации пользователя на время действия файла cookie.
Чтобы включить вход на основе файлов cookie , вам нужно установить yii\web\User::$enableAutoLogin в true в настройках приложения. Вы также можете установить время жизни, передав его при вызове метода yii\web\User::login().
.
Чтобы выйти из системы, просто вызовите
Примечание: закройте пользователя session имеет смысл только в том случае, если сеансы включены. Метод немедленно сбрасывает состояние аутентификации как из памяти, так и из сеанса. И по умолчанию все данные сеанса пользователя также будут уничтожены. Если вы хотите сохранить данные сеанса, вам следует вместо этого вызвать Yii::$app->user->logout(false).
События аутентификации ¶
Пользователь yii\web\ class вызывает различные события во время процессов входа и выхода.
- EVENT_BEFORE_LOGIN: Вызывается перед вызовом yii\web\User::login(). Если контроллер устанавливает для свойства isValid объекта значение false, процесс входа прерывается.
- EVENT_AFTER_LOGIN — вызывается после успешного входа в систему.
- EVENT_BEFORE_LOGOUT: Вызывается перед вызовом yii\web\User::logout(). Если контроллер устанавливает для свойства isValid объекта значение false , процесс вывода будет прерван.
- EVENT_AFTER_LOGOUT — вызывается после успешного выхода из системы.
Эти события можно использовать для реализации функции аудита входа в систему, которая собирает онлайн-статистику пользователей. Например, в обработчике EVENT_AFTER_LOGIN можно записать время входа и IP-адрес в таблицу пользователей.
Источник
Получить имя пользователя в yii2
Как я могу получить имя зарегистрированного пользователя в yii2? Я могу получить идентификатор пользователя с помощью
и знаю, что могу найти имя в базе данных, но мне нужен прямой путь. Столбец имени в базе данных называется «имя пользователя», но
не работает и
тоже не работает.
5 ответов 5
Тип тенденции
Тенденция ранжирование основано на методе ранжирования с высоким баллом по умолчанию, но увеличивает количество последних голосов, чтобы помочь получить самые свежие ответы .
Вернуться к высокий рейтинг, если нет сообщений в трендах.
Переключиться на тренды
Информация о пользователе автоматически обновляется после входа в систему. будет храниться в переменной идентификатора Yii::$app->user->.
Для получения дополнительной информации см. документацию по аутентификации пользователя в официальном руководстве.
Ответ @thepeach работает, вы действительно можете расширьте компонент User и добавьте свои собственные функции, чтобы вы могли получить их с помощью Yii::$app->user->что-то, что вы изначально пытались сделать.
Мне нравится расширять такие вещи с нуля, поэтому Я готов добавить свои собственные функции без рефакторинга кода. Нехорошо делать что-то одним способом, а потом возвращаться и исправлять 100 пунктов кода, потому что вы изменили его позже.
Сначала определите класс пользовательского компонента в вашей конфигурации:
Затем создайте User .php в каталоге компонентов. Если вы еще не создали этот каталог, создайте его в корне вашего приложения.
Теперь вы можете получить к ним доступ через Yii::$app->user->something.
Например, поместите это в одно из представлений и перейдите на страницу в браузере:
Я написал здесь более подробный ответ, в котором это рассматривается более подробно.
Источник