andrey-helldar/strong-password

此包已被废弃,不再维护。未建议替代包。

此包为Laravel应用程序提供确保强密码的验证器

v1.7.1 2020-12-30 19:46 UTC

This package is auto-updated.

Last update: 2021-11-13 18:53:40 UTC


README

Laravel Strong Password

此包为Laravel应用程序提供确保强密码的验证器。

StyleCI Status Github Workflow Status For Laravel

Stable Version Unstable Version Total Downloads License

在Laravel中,自版本 8.39.0 起可以使用标准的 password 功能性(#36960)。

安装

要获取Laravel Strong Password的最新版本,只需使用 Composer 引入项目

$ composer require andrey-helldar/strong-password

或者手动更新 require 块的 composer.json 并运行 composer update

{
    "require-dev": {
        "andrey-helldar/strong-password": "^1.0"
    }
}

如果您不使用自动发现,请将 ServiceProvider 添加到 app/Providers/AppServiceProvider.php 中的 providers 数组

public function register()
{
    $this->app->register(\Helldar\StrongPassword\ServiceProvider::class);
}

您还可以发布配置文件以更改实现(例如,将接口更改为特定类)

php artisan vendor:publish --provider="Helldar\StrongPassword\ServiceProvider"

使用方法

规则

现在,一些规则扩展了 Validator 门面

  • psw_letters - 字段必须包含至少一个字母。
  • psw_case_diff - 字段必须包含大小写字母。
  • psw_numbers - 字段必须包含至少一个数字。
  • psw_symbols - 字段必须包含至少一个符号。
  • psw_min_length - 字段必须至少包含十个字符。
  • psw_strong - 字段必须包含至少两个大小写字母、至少一个数字和一个特殊字符,以及至少十个字符(包括所有规则:psw_letterspsw_case_diffpsw_numberspsw_symbolspsw_min_length)。
// 1
$validator = \Validator::make(['foo' => 'qwerty'], ['foo' => 'psw_letters']);
$validator->passes(); // return `true`

// 2
$validator = \Validator::make(['bar' => 'qwerty'], ['bar' => 'psw_case_diff']);
$validator->passes(); // return `false`

// 3
$validator = \Validator::make(['baz' => 'qweRTY123!#'], ['baz' => 'psw_strong']);
$validator->passes(); // return `true`

// 4
$validator = \Validator::make(['baz' => 'qweRTY123!#'], ['baz' => 'psw_letters|psw_min_length']);
$validator->passes(); // return `true`

上下文验证

您也可以通过访问 Password 门面在代码内部执行条件检查

use Helldar\StrongPassword\Facades\Password;

return Password::validate('qwerty');

return Password::errors('qwerty');

return Password::isAllow('qwerty');

例如,我们将在 config/strong-password.php 文件中定义以下规则

return [
    'min_length' => 27,

    'rules' => [
        'psw_letters',
        'psw_numbers',
        'psw_min_length',
    ],
];

因此,我们将得到以下结果

$password = 'qwerty';

return Password::validate($password);
// throw ValidationException

return Password::errors($password);
// return array:
// [
//     'password' => [
//         'The password must include at least one number.',
//         'The password must be at least twenty-seven characters.',
//     ]
// ]

return Password::isAllow($password);
// return false

$password = 'qWeRtYuIoP[]#!123qWeRtYuIqwd';

return Password::validate($password);
// [
//     'password' => 'qWeRtYuIoP[]#!123qWeRtYuIqwd'
// ]

return Password::errors($password);
// return null

return Password::isAllow($password);
// return true

许可证

此包受 MIT 许可证 的许可。