Авторизация по логину или E-mail в 1С-Битрикс

Задача: сделать авторизацию по логину и E-mail полям у пользователя («LOGIN», «EMAIL»):

Добавил в файл local/php_interface/init.php:

// ...

AddEventHandler('main', 'OnBeforeUserLogin', ['DwCustom', 'OnBeforeUserLogin']);

class DwCustom
{
    function OnBeforeUserLogin(&$arFields)
    {
        if (preg_match("/^([0-9a-zA-Z]+([\-\.\_]{0,1}[0-9a-zA-Z]+)*[\-\.\_]{0,1}@[0-9a-zA-ZабвгдеёжзийклмнопрстуфхцчшщъыьэюяАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ]+([\-\.\_]{0,1}[0-9a-zA-Z]+)*[\.][a-zA-ZабвгдеёжзийклмнопрстуфхцчшщъыьэюяАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ]{2,9})$/", $arFields["LOGIN"])) {
			
			$filter = [
				'ACTIVE' => 'Y',
				'=EMAIL' => $arFields['LOGIN']
			];
			
			$q = CUser::GetList(($by = 'ID'), ($order = 'asc'), $filter);
			
			if ($r = $q->GetNext()) {
				
				$arFields["LOGIN"] = $r['LOGIN'];
				
			}
		
		}
		
		return true;
    }
}

// ...

Для поиска: bitrix авторизация