Тип: Число. Определяет максимальное количество попыток проверки кода подтверждения восстановления пароля. Если данное значение будет превышено, пользователю необходимо будет запросить отправку нового кода на адрес электронной почты для восстановления пароля. Должно быть целым числом в диапазоне от 1 до 999. Значение по умолчанию: 3.
Полное описание, параметры и ограничения
НастройкиВосстановленияПароля.МаксимальноеКоличествоНеуспешныхПопытокПроверкиКодаПодтверждения (PasswordRecoverySettings.MaxUnsuccessfulVerificationCodeValidationAttemptsCount)
НастройкиВосстановленияПароля (PasswordRecoverySettings)
МаксимальноеКоличествоНеуспешныхПопытокПроверкиКодаПодтверждения (MaxUnsuccessfulVerificationCodeValidationAttemptsCount)
Доступен, начиная с версии 8.3.15.
Использование:
Чтение и запись.
Описание:
Тип: Число.
Определяет максимальное количество попыток проверки кода подтверждения восстановления пароля. Если данное значение будет превышено, пользователю необходимо будет запросить отправку нового кода на адрес электронной почты для восстановления пароля.
Должно быть целым числом в диапазоне от 1 до 999.
Значение по умолчанию: 3.
Доступность:
Сервер, толстый клиент.
Использование в версии:
Доступен, начиная с версии 8.3.15.
Методическая информация
Практические примеры
Подготовить ограничения кода с явной проверкой диапазонов
Четыре параметра имеют разные границы. До присваивания проверяем целые числа и выводим срок в минутах, не путая ожидание повторной отправки с периодом действительности кода.
Где и как запускать
Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.
Подготовка
В отдельной учебной базе 8.5.1.1343 создайте серверный общий модуль УчебныеЗадачи. Фрагмент вставьте внутрь ВыполнитьПример() Экспорт и вызовите своей учебной командой.
Во всех задачах Новый НастройкиВосстановленияПароля создаёт собственный объект в памяти. Код не устанавливает дополнительные параметры информационной базы и не запускает восстановление пароля.
Не подставляйте реальные SMTP-пароли, OAuth-токены, адреса сотрудников и рабочие ссылки. example.invalid — учебный адрес, не настроенный почтовый сервер.
Каждый пример выполняйте отдельно. Вывод и свойства проверяются в сообщениях/отладчике; доставки письма, изменения пароля и открытия сайта не будет.
Проект = Новый НастройкиВосстановленияПароля;
Проект.СпособВосстановленияПароля = СпособВосстановленияПароляПользователяИнформационнойБазы.Нет;
ДлинаКода = 10;
СрокСекунд = 900;
ОжиданиеСекунд = 60;
ЧислоПопыток = 5;
Если ДлинаКода <> Цел(ДлинаКода) Или ДлинаКода < 8 Или ДлинаКода > 50 Тогда
ВызватьИсключение "Длина кода: целое число от 8 до 50";
КонецЕсли;
Если СрокСекунд <> Цел(СрокСекунд) Или СрокСекунд < 1 Или СрокСекунд > 4294967295 Тогда
ВызватьИсключение "Срок действия: целое число секунд от 1 до 4294967295";
КонецЕсли;
Если ОжиданиеСекунд <> Цел(ОжиданиеСекунд) Или ОжиданиеСекунд < 1 Или ОжиданиеСекунд > 999999999 Тогда
ВызватьИсключение "Блокировка повторного запроса: целое число секунд от 1 до 999999999";
КонецЕсли;
Если ЧислоПопыток <> Цел(ЧислоПопыток) Или ЧислоПопыток < 1 Или ЧислоПопыток > 999 Тогда
ВызватьИсключение "Число неуспешных попыток: целое число от 1 до 999";
КонецЕсли;
Проект.ДлинаКодаПодтверждения = ДлинаКода;
Проект.СрокДействияКодаПодтверждения = СрокСекунд;
Проект.ДлительностьБлокировкиЗапросаОбновленияКодаПодтверждения = ОжиданиеСекунд;
Проект.МаксимальноеКоличествоНеуспешныхПопытокПроверкиКодаПодтверждения = ЧислоПопыток;
Сообщить(Проект.ДлинаКодаПодтверждения = 10);
Сообщить(Проект.СрокДействияКодаПодтверждения / 60 = 15);
Сообщить(Проект.ДлительностьБлокировкиЗапросаОбновленияКодаПодтверждения = 60);
Сообщить(Проект.МаксимальноеКоличествоНеуспешныхПопытокПроверкиКодаПодтверждения = 5);Разбор по шагам
Все входные значения в этой задаче собственные числа. Для ввода из формы дополнительно проверьте тип до вызова Цел.
Отдельно проверяем дробность и границы каждого значения; отрицательные, нулевые и выходящие за границы значения не присваиваются.
900 секунд — 15 минут действия кода; 60 секунд — ожидание следующего запроса. Это две разные шкалы.
Длина 10, срок 900, ожидание 60 и попытки 5 выбраны для упражнения, не для автоматического применения в рабочей системе.
Как проверить результат
Четыре сравнения Истина.
Замените только ДлинаКода на 7 либо 10.5 и перезапустите: ожидается собственное понятное исключение до присваивания.
Повторите с ЧислоПопыток=0: причина должна относиться именно к числу попыток.
Ожидаемый результат
Подготовлен проверенный локальный проект с раздельными единицами и ограничениями.
На что обратить внимание
Не сокращайте ограничения без анализа безопасности и требований конкретной системы.
Эти проверки не доказывают защиту от внешнего перебора: реальное восстановление пароля не запущено.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.
Исследовать документированные значения проекта восстановления пароля
Проверяем семь указанных в помощнике значений по умолчанию. Способ Нет задаём сами: его исходное значение справка конструктора не обещает.
Где и как запускать
Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.
Подготовка
В отдельной учебной базе 8.5.1.1343 создайте серверный общий модуль УчебныеЗадачи. Фрагмент вставьте внутрь ВыполнитьПример() Экспорт и вызовите своей учебной командой.
Во всех задачах Новый НастройкиВосстановленияПароля создаёт собственный объект в памяти. Код не устанавливает дополнительные параметры информационной базы и не запускает восстановление пароля.
Не подставляйте реальные SMTP-пароли, OAuth-токены, адреса сотрудников и рабочие ссылки. example.invalid — учебный адрес, не настроенный почтовый сервер.
Каждый пример выполняйте отдельно. Вывод и свойства проверяются в сообщениях/отладчике; доставки письма, изменения пароля и открытия сайта не будет.
Проект = Новый НастройкиВосстановленияПароля;
Проект.СпособВосстановленияПароля = СпособВосстановленияПароляПользователяИнформационнойБазы.Нет;
Сообщить(Проект.ДлинаКодаПодтверждения = 8);
Сообщить(Проект.СрокДействияКодаПодтверждения = 600);
Сообщить(Проект.ДлительностьБлокировкиЗапросаОбновленияКодаПодтверждения = 30);
Сообщить(Проект.МаксимальноеКоличествоНеуспешныхПопытокПроверкиКодаПодтверждения = 3);
Сообщить(Проект.ПортSMTP = 0);
Сообщить(Проект.АутентификацияПоТокену = ИспользованиеАутентификацииИнтернетПочтыПоТокену.Авто);
Сообщить(Не Проект.ТолькоЗащищеннаяАутентификацияSMTP);
Сообщить(Проект.СпособВосстановленияПароля = СпособВосстановленияПароляПользователяИнформационнойБазы.Нет);Разбор по шагам
Конструктор создаёт новый объект, не читает фактическую настройку рабочей базы.
Длина кода — 8 символов; срок 600 секунд — 10 минут; ожидание повторного запроса 30 секунд; допустимых неуспешных попыток 3.
Порт 0 — условное значение выбора порта по ИспользоватьSSL, а не сетевой порт 0.
Авто относится к выбору токенной аутентификации. Последнее сравнение проверяет наше явное присваивание Нет, не значение конструктора.
Как проверить результат
Восемь сообщений Истина; первые семь относятся к документированным исходным значениям, восьмое к нашему отключению способа.
Не считайте эти числа рекомендацией политики безопасности для вашей организации.
Ожидаемый результат
Проверены исходные параметры нового проекта без чтения секретов и действующей настройки базы.
На что обратить внимание
Новый объект и настройки информационной базы — разные вещи.
Авто не означает, что токен выдан, авторизация прошла или письмо доставлено.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.