OnAfterUserLogin
Описание и параметры
функция-обработчик( array &arParams );
Событие "OnAfterUserLogin" вызывается в методе CUser::Login после попытки авторизовать пользователя, проверив имя входа arParams['LOGIN'] и пароль arParams['PASSWORD'].
Параметры
Параметр | Описание |
---|---|
arParams | Массив полей проверки имени входа и пароля:
|
Примечание
Все параметры данного обработчика являются ссылками на исходные переменные. Поэтому, если вы измените значение параметра внутри обработчика, это приведет к смене значения исходной переменной поступившей на вход функции-обработчика.
Это позволяет, например, изменить RESULT_MESSAGE, что приведет к смене сообщения возвращаемого функцией CUser::Login.
Смотрите также
- Событие "OnBeforeUserLogin"
- CUser::Login
- События
- Внешняя авторизация
Пример функции-обработчика
<? AddEventHandler("main", "OnAfterUserLogin", Array("MyClass", "OnAfterUserLoginHandler"));
class MyClass { // создаем обработчик события "OnAfterUserLogin" public static function OnAfterUserLoginHandler(&$fields) { // если логин не успешен то if($fields['USER_ID']<=0) { // счетчик неудавшихся попыток логина $_SESSION["AUTHORIZE_FAILURE_COUNTER"]++; // если количество неудачных попыток авторизации превышает 10, то if ($_SESSION["AUTHORIZE_FAILURE_COUNTER"]>10) { // ищем пользователя по логину $rsUser = CUser::GetByLogin($fields['LOGIN']); // и если нашли, то if ($arUser = $rsUser->Fetch()) { // блокируем бюджет пользователя $user = new CUser; $user->Update($arUser["ID"],array("ACTIVE" => "N")); // задаем сообщение $fields['RESULT_MESSAGE'] = array("TYPE" => "ERROR", "MESSAGE" => "Ваш бюджет блокирован."); } } } } } ?>
Марат Миннеханов
|
||||
По аналогии с предыдущим примером авторизуем пользователя либо по логину, либо по e-mail
************* комментарий от разработчика:
| ||||
© «Битрикс», 2001-2024, «1С-Битрикс», 2024
Пользовательские комментарии
Мы будем рады, если разработчики добавят свои комментарии по практическому использованию методов системы.Для этого нужно всего лишь авторизоваться на сайте
Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.
Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.