Как получить id пользователя yii2

Аутентификация ¶

Аутентификация — это процесс аутентификации пользователя. Как правило, идентификатор (например, имя пользователя или адрес электронной почты) и секретный токен (например, пароль или ключ доступа) используются для определения того, является ли пользователь тем, кем он себя называет. Аутентификация — основная функция формы входа.

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.

Читайте также:  Как открыть файл ebk

Чтобы включить вход на основе файлов 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.

Например, поместите это в одно из представлений и перейдите на страницу в браузере:

Я написал здесь более подробный ответ, в котором это рассматривается более подробно.

Источник

Поделиться с друзьями
Решатор