afiqiqmal / lara-pass-policy
Laravel 密码历史
1.2.2
2023-10-13 08:42 UTC
Requires
- php: ^7.4|^8.0
- illuminate/auth: ^7 || ^8 || ^9 || ^10
- illuminate/contracts: ^7 || ^8 || ^9 || ^10
- illuminate/support: ^7 || ^8 || ^9 || ^10
Requires (Dev)
- nunomaduro/collision: ^5.3
- orchestra/testbench: ^6.15
- pestphp/pest: ^1.18
- pestphp/pest-plugin-laravel: ^1.1
- spatie/laravel-ray: ^1.23
- vimeo/psalm: ^4.8
README
安装
您可以通过 composer 安装此包
composer require afiqiqmal/lara-pass-policy
您可以使用以下命令发布和运行迁移
php artisan vendor:publish --provider="Afiqiqmal\LaraPassPolicy\LaraPassPolicyServiceProvider" --tag="migrations" php artisan migrate
您可以使用以下命令发布配置文件
php artisan vendor:publish --provider="Afiqiqmal\LaraPassPolicy\LaraPassPolicyServiceProvider" --tag="config"
默认情况下,此包提供了一个视图(Blade 和 Vue 模板),允许用户更改自己的密码。如果您想自定义默认页面,可以使用以下命令发布视图
php artisan vendor:publish --provider="Afiqiqmal\LaraPassPolicy\LaraPassPolicyServiceProvider" --tag="views"
并在以下位置按需进行自定义
resources/views/auth/verify-password-change.blade.php
,对于标准栈(Blade 模板)resource/js/Pages/Auth/VerifyPasswordChange.vue
,如果您的栈集成了 Inertia
然后,请确保在 config/lara-pass-policy.views.password-changed
中指定视图名称。
注意:当前,默认支持 Vue 栈:对于 React/Svelte 栈,您必须在 resources/js/Pages/Auth
中创建一个新的页面组件,就像提供的 Vue 页面一样。
用法
将 HasPasswordPolicy
特性添加到可验证模型中
将 MustVerifyPasswordPolicy
接口添加到可验证模型中
class User extends Authenticable implements MustVerifyPasswordPolicy { use HasPasswordPolicy; ... ... }
添加中间件
在 $routeMiddleware
中添加 EnsurePasswordIsChanged
中间件
protected $routeMiddleware = [ ... 'password_changed' => EnsurePasswordIsChanged::class, ... ];
以便您可以将它附加到您的路由上
// routes/web.php Route::middleware(['auth', 'password_changed'])->group(function () { return view('welcome'); });
翻译。
您可以通过在 lang/<locale>.json
文件中添加翻译字符串来翻译包字符串消息(在配置 lara-pass.messages
中定义)。
环境设置。
如果您想禁用特定环境(例如:local
)的密码策略,请将此变量在 .env
文件中设置为 false
# Set to false to disable password policy. PASSWORD_POLICY_ENABLED=false
您还可以通过在 .env
文件中设置变量来自定义密码到期前的天数
# Set to false to disable password policy. PASSWORD_LIFETIME=30
验证规则。
如果您需要应用自己的默认密码规则,您应该在应用程序的一个服务提供者的 boot 方法中定义一个 defaults
回调,如 Laravel 文档 中所述:此包将验证新密码是否符合这些默认值。
致谢
许可
MIT 许可证(MIT)。有关更多信息,请参阅 许可文件