В этом посте я покажу, как сгенерировать и проверить OTP (одноразовый пароль) с помощью простого пакета Laravel.
Итак, давайте начнем и выполним следующие три простых шага.
- Сгенерируем OTP, используя любую уникальную идентификацию (предпочтительно номер мобильного телефона или адрес электронной почты),
- Отправим конечному пользователю с помощью любого поставщика уведомлений
- Наконец, проверим, используя ту же уникальную идентификацию.
Процесс установки и настройки :
Установка
Устанавливаем пакет через 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