Laravel Jetstream 的安全功能可以通过用户使用右上角的用户资料导航下拉菜单访问。在这个仪表盘中,Jetstream 会搭建视图,允许用户更新与他们帐户关联的密码。
与 Jetstream 的大多数功能一样,用于实现该功能的底层逻辑可以通过修改相应的操作类来定制。
当用户更新其密码时,将调用 App\Actions\Fortify\UpdateUserPassword
类。此操作负责验证输入并更新用户的密码。
此操作利用 App\Actions\Fortify\PasswordValidationRules
特性来确定将应用于密码的验证规则。定制此特性将统一影响用户注册、重置或更新密码时应用于密码的验证规则。
您可能已经注意到,App\Actions\Fortify\PasswordValidationRules
特性利用了自定义的 Laravel\Fortify\Rules\Password
验证规则对象。此对象允许您轻松地定制应用程序的密码要求。默认情况下,该规则要求密码至少八个字符长。但是,您可以使用以下方法来定制密码的要求
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()
当然,这些方法可以链接起来,以定义应用程序的密码验证规则
(new Password)->length(10)->requireSpecialCharacter()
通常,这些功能的视图和页面不需要定制,因为它们已经功能齐全。但是,如果需要对这些页面进行小的演示调整,则可以在下面描述其位置。
使用 Livewire 堆栈时,密码更新视图使用 resources/views/profile/update-password-form.blade.php
Blade 模板显示。使用 Inertia 堆栈时,此视图使用 resources/js/Pages/Profile/UpdatePasswordForm.vue
模板显示。