afiqiqmal/lara-pass-policy

Laravel 密码历史

1.2.2 2023-10-13 08:42 UTC

This package is auto-updated.

Last update: 2024-09-13 10:51:44 UTC


README

Latest Version on Packagist Total Downloads Donate

安装

您可以通过 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)。有关更多信息,请参阅 许可文件