重置密码
介绍
大多数 Web 应用程序都提供了一种让用户重置密码的方法。Laravel 已经提供了便捷的服务来发送密码重置链接和安全重置密码,而不需要您为每个应用程序重新实现此功能。
想要快速入门吗?在全新的 Laravel 应用程序中安装 Laravel 入门套件。 Laravel 的起始包将为您的整个身份验证系统包括重置忘记的密码提供支持。
模型准备
在使用 Laravel 的密码重置功能之前,您的应用程序的 App\Models\User
模型必须使用 Illuminate\Notifications\Notifiable
trait。通常,在新创建的 Laravel 应用程序的 App\Models\User
模型中默认引入了该 trait 。
接下来,验证您的 App\Models\User
模型是否实现了 Illuminate\Contracts\Auth\CanResetPassword
契约。框架中包含的 App\Models\User
模型已经实现了该接口,并使用 Illuminate\Auth\Passwords\CanResetPassword
特性来包括实现该接口所需的方法。
数据库准备
必须创建一个表来存储您的应用程序的密码重置令牌。这个表的迁移被包含在默认的 Laravel 应用程序中,所以您只需要迁移您的数据库来创建这个表:
php artisan migrate
配置受信任的主机
默认情况下,无论 HTTP 请求的 Host
头的内容是什么,Laravel 都会响应它收到的所有请求。此外,在 Web 请求期间生成应用程序的绝对 URL 时,将使用 Host
标头的值。
通常,您应该将 Web 服务器(例如 Nginx 或 Apache)配置为仅向您的应用程序发送与给定主机名匹配的请求。然而,如果你没有能力直接自定义你的 web 服务器并且需要指示 Laravel 只响应某些主机名,你可以通过为你的应用程序启用 App\Http\Middleware\TrustHosts
中间件来实现。当您的应用程序提供密码重置功能时,这一点尤其重要.
要了解有关此中间件的更多信息,请参阅TrustHosts
中间件文档。