我正在使用 Laravel 7.x 和 sanctum。登录正常,我想从我的 SPA 应用程序中创建一个忘记密码选项。
我在基础知识上苦苦挣扎,因为文档中的大多数示例都依赖于身份验证脚手架。到目前为止,我已经设法获得以下内容:
- 我有一个控制器类,它使用一个名为
ForgotPasswordController
的方法调用,该方法reset
接收要通过 POST 重置的电子邮件。 - 我创建了一个对象:
$user = User::where('email', $email)->get()->first();
在这一点上,我对架构太陌生了,不知道下一步该去哪里,无论是密码门面,我在Illuminat\Auth\Password
命名空间中看到了一些额外的类。我的目标是创建一个过期的令牌,通过默认的电子邮件配置将其通过电子邮件发送给用户(我知道如何发送电子邮件/设计模板),然后能够进行网络服务调用以允许解析密码。
以下是我认为我知道的...
- 我已经
CanResetPassword
在我的用户模型上设置了特征,我认为这是支持密码重置的本机方法所必需的 - 我相信目标是创建一个针对用户电子邮件的重置令牌,该令牌会在一段时间后过期,然后将该令牌附加到电子邮件中的 url 上(我不知道围绕令牌生成的架构含义表行)
- 有一个
Password
带有sendResetLink
方法的外观 - 但此方法不适用于 spa 应用程序,因为客户端应用程序的基本 url 会有所不同,所以我假设必须重新编写本机的东西。事实上,调用这个方法会返回一个错误Route [password.reset] not defined
。
我假设我需要密码 Facade,如果需要,生成令牌的方法是什么?我应该只是通过电子邮件发送附加令牌的链接,还是有其他架构考虑来支持令牌到期?
如果我的问题有缺陷,我深表歉意,我对架构不清楚,所以我在做假设。