Laravel Fortify/Sanctum:无需登录即可重新发送验证电子邮件

时间:2021-04-30 09:59:39

标签: laravel laravel-sanctum laravel-fortify

我目前正在为未来的项目进行一些研发,并打算使用 Laravel Fortify 和 Sanctum。

这个想法是,用户可以注册托管在不同域上的独立 PWA 应用程序(已经存在 - 但正在使用即将结束的第三方身份验证。)。

目前我看到两个选项,要么使用 fortify 的默认流程在 laravel 应用程序上注册。一旦用户注册并验证了他的电子邮件,他就可以登录 PWA 应用程序。这是最容易开发的流程,因为它是一个开箱即用的功能,但不是那么用户友好。

另一种方法是通过 API 调用在 PWA 应用中注册用户。注册后,我会触发发送带有验证链接的电子邮件。此链接不需要用户进行身份验证以确认。

现在是令人困惑的部分,除非电子邮件经过验证,否则不允许用户登录 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 个答案:

没有答案