微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决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.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?