logo

密码更新

简介

Laravel Jetstream 的安全功能可以通过用户使用右上角的用户资料导航下拉菜单访问。在这个仪表盘中,Jetstream 会搭建视图,允许用户更新与他们帐户关联的密码。

Screenshot of Security

操作

与 Jetstream 的大多数功能一样,用于实现该功能的底层逻辑可以通过修改相应的操作类来定制。

当用户更新其密码时,将调用 App\Actions\Fortify\UpdateUserPassword 类。此操作负责验证输入并更新用户的密码。

此操作利用 App\Actions\Fortify\PasswordValidationRules 特性来确定将应用于密码的验证规则。定制此特性将统一影响用户注册、重置或更新密码时应用于密码的验证规则。

密码验证规则

您可能已经注意到,App\Actions\Fortify\PasswordValidationRules 特性利用了自定义的 Laravel\Fortify\Rules\Password 验证规则对象。此对象允许您轻松地定制应用程序的密码要求。默认情况下,该规则要求密码至少八个字符长。但是,您可以使用以下方法来定制密码的要求

php
use Laravel\Fortify\Rules\Password;

// Require at least 10 characters...
(new Password)->length(10)

// Require at least one uppercase character...
(new Password)->requireUppercase()

// Require at least one numeric character...
(new Password)->requireNumeric()

// Require at least one special character...
(new Password)->requireSpecialCharacter()

当然,这些方法可以链接起来,以定义应用程序的密码验证规则

php
(new Password)->length(10)->requireSpecialCharacter()

视图/页面

通常,这些功能的视图和页面不需要定制,因为它们已经功能齐全。但是,如果需要对这些页面进行小的演示调整,则可以在下面描述其位置。

使用 Livewire 堆栈时,密码更新视图使用 resources/views/profile/update-password-form.blade.php Blade 模板显示。使用 Inertia 堆栈时,此视图使用 resources/js/Pages/Profile/UpdatePasswordForm.vue 模板显示。