Пакет Laravel для генерации и валидации OTP токенов

В этом посте я покажу, как сгенерировать и проверить OTP (одноразовый пароль) с помощью простого пакета Laravel. 

Итак, давайте начнем и выполним следующие три простых шага.

  1. Сгенерируем OTP, используя любую уникальную идентификацию (предпочтительно номер мобильного телефона или адрес электронной почты),
  2. Отправим конечному пользователю с помощью любого поставщика уведомлений
  3. Наконец, проверим, используя ту же уникальную идентификацию.

Процесс установки и настройки :

Установка

Устанавливаем пакет через composer:

composer require seshac/otp-generator

Публикуем и запускаем миграции:

php artisan vendor:publish --provider="Seshac\Otp\OtpServiceProvider" --tag="migrations"
php artisan migrate

Публикуем конфигурационный файл:

php artisan vendor:publish --provider="Seshac\Otp\OtpServiceProvider" --tag="config"

После публикации настраиваем config/otp-generator.php

Использование

use Seshac\Otp\Otp;

$otp =  Otp::generate($identifier);

$verify = Otp::validate($identifier, $otp->token);
// response
{
  "status": true
  "message": "OTP is valid"
}

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

use Seshac\Otp\Otp;

$otp =  Otp::setValidity(30)  // время жизни токена otp в мин
      ->setLength(4)  // длина токена
      ->setMaximumOtpsAllowed(10) // сколько раз можно перегенерировать токен
      ->setOnlyDigits(false)  // нужно ли генерировать токен буквенно цифровой
      ->setUseSameToken(true) // при регенерации токена создавать совершенно новый
      ->generate($identifier);

$verify = Otp::setAllowedAttempts(10) // кол-во неправильных попыток ввода
    ->validate($identifier, $otp->token);

Вот репозиторий GitHub https://github.com/seshac/otp-generator

Если обнаружите какие-либо проблемы, пожалуйста, не стесняйтесь открыть проблему здесь.
https://github.com/seshac/otp-generator/issues

Рейтинг
( Пока оценок нет )
Maxyc Webber/ автор статьи
Мне 35 лет. Опыт профессиональной разработки 15 лет. Занимаюсь разработкой и поддержкой корпоративных систем автоматизации бизнеса, а также высоконагруженными проектами. Мне нравится решать нестандартные проблемы бизнеса. Имею опыт формирования команд под проект, налаживания процесса разработки, коммуникации программистов и заказчиков. Есть опыт работы с зарубежными заказчиками (ОАЭ, Польша, Германия, Швейцария).
Понравилась статья? Поделиться с друзьями:
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!:

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.