Laravel Fortify/Sanctum: повторно отправить письмо с подтверждением без входа в систему
В настоящее время я занимаюсь исследованиями и разработками для будущего проекта и собираюсь использовать Laravel Fortify & Sanctum.
Идея состоит в том, что пользователи могут зарегистрироваться для автономного приложения PWA (уже существует, но использует стороннюю аутентификацию, которая скоро заканчивается), которое размещено в другом домене.
В настоящее время я вижу два варианта: либо выполнить регистрацию в приложении laravel, используя поток по умолчанию из fortify. Как только пользователь зарегистрируется и подтвердит свой адрес электронной почты, он сможет войти в приложение PWA. Это самый простой в разработке процесс, поскольку это готовая функция, но не очень удобная для пользователя.
Другой подход заключался бы в регистрации пользователя в приложении PWA через вызовы API. После регистрации я отправлю электронное письмо со ссылкой для подтверждения. Эта ссылка не требует аутентификации пользователя для подтверждения.
Итак, теперь приходит запутанная часть: пользователю не разрешено входить в приложение PWA, если электронная почта не подтверждена. И будет запрошено предупреждение о подтверждении электронной почты в PWA. Но если пользователь по какой-то причине не получает электронное письмо или срок действия ссылки истек, он застрянет.
На этом этапе я бы предоставил поле ввода, где пользователь может ввести свой адрес электронной почты, чтобы повторно отправить письмо с подтверждением. И отправьте это письмо по API, чтобы повторно отправить ссылку для подтверждения.
public function resend(Request $request){
$user = User::where("email", $request->input("email"))->first();
if($user){
$user->sendEmailVerificationNotification();
}
return response(["message" => "New link send"]);
}
Пользователь не увидит ошибки, если нет пользователя с таким адресом электронной почты, просто чтобы избежать утечки данных.
Мне было интересно, может ли этот подход вызвать проблемы с безопасностью? Или я должен использовать первый подход вместо потока регистрации / проверки по умолчанию?
Спасибо, что поделились своими мыслями по этому поводу.
С уважением, Барт