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"]);
}

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

Мне было интересно, может ли этот подход вызвать проблемы с безопасностью? Или я должен использовать первый подход вместо потока регистрации / проверки по умолчанию?

Спасибо, что поделились своими мыслями по этому поводу.

С уважением, Барт

0 ответов

Другие вопросы по тегам