Вход с помощью одноразовых кодов из SMS/push#

Для входа по первому фактору аутентификации можно использовать отправляемые в мобильное приложение push-уведомления или SMS-сообщения.

Если при входе по номеру телефона пользователь не найден, то можно для этого пользователя инициировать регистрацию учетной записи.

Шаг 1. Настройка метода входа#

Для использования кодов подтверждения:

  1. Настройте и включите метод аутентификации Вход по коду из SMS/push. Необходимо настроить:

    • способ идентификации учетной записи – задать регулярное выражение. Например, правило phone_number=${login} означает, что введенное пользователем значение в форме входа будет сопоставлено с атрибутом phone_number;

    • длину кода подтверждения;

    • время действия кода подтверждения;

    • количество попыток ввода кода подтверждения за 1 вход;

    • общее количество попыток (число отправок кодов и попыток ввода кода, после чего для пользователя будет временно заблокирован данный способ аутентификации);

    • время блокировки при превышении попыток (в минутах);

    • способы отправки кода:

      • отправлять push-уведомление – нужно указать атрибут с номером мобильного телефона или иным необходимым сервису идентификатором пользователя, например, ${phone_number};

      • отправлять SMS – указать атрибут с номером мобильного телефона пользователя, например, ${phone_number};

    ../_images/code.png
    • правило выбора хранилища атрибутов для поиска введенного пользователем телефона.

    ../_images/login_select_storage.png
  2. Настройте подключение Blitz Identity Provider к SMS-шлюзу и сервису отправки push-уведомления.

Шаг 2. Включение регистрации#

Для того, чтобы инициировалась регистрация учетной записи, если при входе по номеру телефона пользователь не найден:

  1. Откройте файл blitz.conf.

  2. В секцию login.methods.sms.profiles.${factor} добавьте блок reg:

    "reg" : {
       "mapping" : [
          {
                "attr" : "mobile",
                "useForParsing" : true,
                "value" : "${mobile}"
          },
          {
                "attr" : "surname",
                "useForParsing" : false,
                "value" : "${mobile}"
          }
       ],
       "regUserIfNotFound" : true
    }
    
  3. Поставьте значение поля regUserIfNotFound равным true.

  4. В блоке mapping настройте правила сопоставления атрибутов при регистрации.

  5. Если необходимо использовать регулярные выражения, поставьте useForParsing = true, при этом value всегда mobile.

Внимание

Обязательно, чтобы true стояло у одного единственного поля useForParsing.

Примечание

Рекомендуется назначать регулярное выражение для выбранного поля, чтобы номер телефона проверялся корректно.