0

我目前正在为未来的项目做一些研发,并打算使用 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"]);
}

当没有用户使用该电子邮件地址时,用户不会看到错误,只是为了避免一些数据泄露。

我想知道这种方法是否会导致一些安全问题?还是我应该采用默认的强化注册/验证流程的第一种方法?

感谢您分享您对此事的看法。

最好的问候,巴特

4

0 回答 0