Документация для разработчиков
Темная тема

GeneratePhoneCode

array|false public static
CUser::GeneratePhoneCode(
	int $userId
);

Метод генерирует одноразовый код подтверждения телефона пользователя. Метод статический.

CUser::GeneratePhoneCode работает с записью пользователя в таблице b_user_phone_auth. Для генерации кода у пользователя должна быть запись телефона с непустым секретом OTP_SECRET.

Метод только создает код и обновляет данные попыток. Отправку SMS выполняет отдельная логика, например CUser::SendPhoneCode.

Параметры вызова

Параметр Описание
$userId Идентификатор пользователя.

Возвращаемое значение

Метод возвращает массив с кодом и номером телефона пользователя:

Индекс Описание
0 Одноразовый код подтверждения.
1 Номер телефона из записи пользователя.

Если запись телефона не найдена или в ней нет OTP_SECRET, метод возвращает false.

Особенности работы

При успешной генерации метод сбрасывает счетчик попыток ATTEMPTS в 0 и записывает дату отправки кода в поле DATE_SENT.

Код формируется по алгоритму TOTP с интервалом 30 секунд. Проверяйте код методом CUser::VerifyPhoneCode.

Пример

$userId = 12;

$phoneCode = CUser::GeneratePhoneCode($userId);

if ($phoneCode !== false)
{
	[$code, $phoneNumber] = $phoneCode;

	// Передайте $code в сервис отправки SMS.
}

Смотрите также



© «Битрикс», 2001-2026, «1С-Битрикс», 2026