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

问题描述

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

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

我想知道这种方法是否会导致一些安全问题?或者我应该选择第一种方法而不是认的强化注册/验证流程?

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

最好的问候, 巴特

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...