OnWebLogin
Последнее обновление Oct 13th, 2026 | История страницы | Улучшить эту страницу | Сообщить о проблеме
Support the team building MODX with a monthly donation.
The budget raised through OpenCollective is transparent, including payouts, and any contributor can apply to be paid for their work on MODX.
Backers
Budget
$194 per month—let's make that $500!
Learn moreСобытие: OnWebLogin¶
Вызывается после успешной аутентификации пользователя во фронтенд-контексте (не mgr) и после добавления session contexts. Плагины не меняют результат входа.
- Служба: 3 - Web Access Service Events
- Group: Security
Параметры события¶
| Имя | Описание |
|---|---|
| user | Объект modUser, который только что вошёл. |
| attributes | Массив: |
| - rememberme — запоминать ли вход | |
| - lifetime — время жизни session cookie для этого входа | |
| - loginContext — ключ контекста входа | |
| - addContexts — дополнительные контексты, куда тоже записали сессию |
$modx->getUser() во время OnWebLogin¶
Процессор входа добавляет session contexts до вызова OnWebLogin. На уровне сессии пользователь уже вошёл.
Для web-контекстов процессор не обновляет $modx->user перед событием. $modx->getUser() часто возвращает прежний объект из запроса (аноним / id 0 или другой уже закэшированный пользователь). Поэтому $modx->getUser() «врёт», хотя вход уже прошёл.
Берите пользователя из параметра события $user (или $scriptProperties['user']). Если нужен именно $modx->getUser(), сбросьте и перезагрузите после появления сессии:
$modx->user = null;
$modx->getUser($attributes['loginContext'], true);
При входе в manager процессор обновляет $modx->user до OnManagerLogin. Для web / OnWebLogin этого шага нет.
Рабочий процесс входа¶
-
OnBeforeWebLogin || OnBeforeManagerLogin — плагин может прервать вход, вернув значение, отличное от
true. -
OnUserNotFound — только если имени пользователя нет в БД MODX. Плагин может отдать свой
modUserи продолжить вход. -
OnWebAuthentication || OnManagerAuthentication — плагин может обойти проверку пароля по умолчанию. Возврат
trueсчитает пользователя аутентифицированным. -
OnWebLogin || OnManagerLogin — после добавления session contexts. Не меняет успех или отказ входа. На web берите
$userиз события, а не$modx->getUser()(см. выше).
Пример¶
Записать в журнал ошибок, кто вошёл и с какими атрибутами:
<?php
$eventName = $modx->event->name;
switch ($eventName) {
case 'OnWebLogin':
$name = $user->get('username');
$modx->log(modX::LOG_LEVEL_ERROR, 'Авторизовался пользователь ' . $name . ' ' . print_r($attributes, true));
break;
}
Смотрите также¶
Support the team building MODX with a monthly donation.
The budget raised through OpenCollective is transparent, including payouts, and any contributor can apply to be paid for their work on MODX.
Backers
Budget
$194 per month—let's make that $500!
Learn more










