Я — новый пользователь laravel, разрабатывающий систему, застрял в проверке пользователя с помощью SMS-сообщения, которое будет отправлено пользователю с кодом проверки, который будет использоваться пользователем для заполнения системы для проверки его номера.
В основном, что вам нужно сделать, это создать UUID ( uniqid()
) или любой случайный нет. и сохранить его в базе данных с идентификатором пользователя.
Для отправки SMS существует несколько служб. Ниже приведены некоторые надежные услуги и цены также доступны
https://cloud.google.com/appengine/docs/standard/php/sms/twilio
Вы можете использовать их или что угодно. Затем вы можете отправить ранее сгенерированный uuid или случайный номер. на телефон пользователя и попросите пользователя ввести код, который он получил в вашей форме.
Затем вы можете проверить, соответствует ли введенный ими код текущему пользователю. Если это так, разрешите им войти в систему.
Также важно, что вам нужно добавить промежуточное ПО OTP_requires для всех маршрутов, которые в нем нуждаются. Проверьте в сеансе, если значение OPT_Passed имеет значение true в сеансе. Если да, продолжайте. еще перенаправить на страницу запроса OPT.
Измените вашу таблицу так, чтобы в ней был столбец otp для хранения otp.
Генерация отп 4-6 длины.
function generateotp($len) {
$result = '';
for($i = 0; $i < $len; $i++) {
$result .= mt_rand(0, 9);
}
return $result;
}
$otp= generateotp(6);
Сохранить этот отп к таблице.
$user->otp=$otp;
$user->save();
Отправьте этот otp на мобильный телефон пользователя через API провайдера.
Вы можете получить otp / транзакционный sms api от провайдера массовых смс.
например
http://xyz.xyz/api/send?user=id&apikey=apikey&sndr=senderid&mobile=mobile&text=$otp
Затем перенаправьте на страницу, где пользователь поставит otp. Сопоставьте введенный пользователем OTP с тем, что хранится в таблице. Установите для таблицы значение otp после проверки или через некоторое время.
Таким же образом вы также можете использовать otp over voice call.