В таблице Настройки необходимо заполнить коды для секрета и его отправки, время переотправки и время жизни и его включить.
Код генерирующий секрет. Сгенерированная строка будет передана в код отправки в переменную $#secret
и записана в базу данных для последующей проверки.
Например:
=: strRandom(length: 4; numbers: "true"; letters: "false"; symbols: "false")
Код отправки секрета, сгенерированного предыдущим кодом. Код получает две переменные:
$#secret
– возвращает строку из кода секрета.
$#userId
— в обоих кодах возвращает id пользователя.
Возможно использовать любые возможности кодов действий. h_pro_auth_message
исполняется как код-действия.
Например можно вызвать getFromScript отправляющий SMS на номер пользователя или отправлять код через бот в telegram.
Например:
a1=: notificationSend(users: $#userId; title: "Код для входа"; eml: str`"Your secret code" ++ $#secret`)
a2=: str`"Code <b>sended</b>" to your email`
Строка, которую возвращает этот код, будет показана над окном ввода кода.
Время переотправки в секундах — ожидание до возможности следующей отправки.
Время жизни сгенерированного кода в минутах — если ввести правильный код за пределами этого времени, он не сработает.
Если колич запросов секрета за время блокировки превысит лимит то пользователь будет заблокирован и перенаправлен на страницу авторизации.
Включение/отключение.
Можно выключить проверку второго фактора. Добавьте строку в Conf.php (надо передать список логинов):
public $loginsWithoutTwoFactorAuth=["admin","another_user"];