重置密码

未匹配的标注

重置密码

简介

技巧:想要快速上手? 只需要在新建的 Laravel 应用中使用 Composer 安装 laravel/jetstream 拓展包并且运行 php artisan jetstream:install livewire/inertia, 然后在浏览器中打开 http://your-app.test/register 或者给你的应用分配任意一个 URL。 这个命令将会负责搭建起整个身份验证系统,包括重置密码!

大多数 web 应用都为用户提供了重置密码的功能。相较于强迫你在每个应用中都要重新实现一遍此功能,Laravel 提供了便捷的方法来发送密码提醒以及执行密码重置。

注意:在使用 Laravel 的密码重置功能之前,你的用户模型必须使用 Illuminate\Notifications\Notifiable trait。

数据库注意事项

首先,验证你的 App\Models\User 模型是否实现了 Illuminate\Contracts\Auth\CanResetPassword 契约。当然,框架中包含的 App\Models\User 模型已经实现了该接口,并且使用了 Illuminate\Auth\Passwords\CanResetPassword trait来包含实现该接口所需的方法。

生成重置令牌的表迁移

接下来,必须创建一张数据表来存储密码重置令牌。此表的迁移已被包含在 laravel/jetstream 这个 Composer 包中。安装 laravel/jetstream 包后,可以使用 migrate 命令创建密码重置令牌数据库表:

composer require laravel/jetstream

php artisan jetstream:install livewire/inertia

php artisan migrate

路由

执行密码重置所需的所有路由都可以使用 laravel/jetstream Composer软件包生成:

composer require laravel/jetstream

php artisan jetstream:install livewire/inertia

视图

要生成重置密码必要的视图文件, 你可以使用 Composer 的laravel/jetstream 拓展包:

composer require laravel/jetstream

php artisan jetstream:install livewire/inertia

这些视图在 resources/views/auth/passwords 中。 你可以随意根据需要为您的应用程序自定义它们。

重置密码后

一旦你定义了重置用户密码的路由和视图,你可以在浏览器中访问 /password/reset 这个路由来重置密码。Laravel Jetstream 软件包中包含的控制器已经包含发送密码重置链接电子邮件以及重置用户密码的逻辑。

注意:默认情况下,密码重置令牌会在一小时后过期。你可以通过 config/auth.php 文件中的密码重置 expire 选项对此进行修改。

自定义

自定义重置密码邮件

您可以轻松地修改用于将密码重置链接发送给用户的通知类。 首先,请在您的「用户」模型上覆盖 sendPasswordResetNotification 方法。 在这个方法中,您可以使用选择的任何通知类发送通知。 重置密码的 $token 是该方法接收的第一个参数:

/**
 * 发送密码重置通知
 *
 * @param  string  $token
 * @return void
 */
public function sendPasswordResetNotification($token)
{
    $this->notify(new ResetPasswordNotification($token));
}

本文章首发在 LearnKu.com 网站上。

本译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。
上一篇 下一篇
Summer
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
贡献者:1
讨论数量: 0
发起讨论 只看当前版本


暂无话题~