joshralph / password-policy
此包最新版本(0.3.0)没有提供许可信息。
一个用于直观创建密码策略并对主题进行验证的库。
0.3.0
2020-09-16 20:35 UTC
Requires
- php: >=5.5
Requires (Dev)
- mockery/mockery: ^0.9.5
- phpunit/phpunit: ^4.8
This package is not auto-updated.
Last update: 2024-09-14 18:47:45 UTC
README
一个流畅的密码策略构建库。此包可以独立使用,也可以轻松添加到Laravel中。
目录
安装
$ composer require joshralph/password-policy
使用方法
策略构建器
$builder = new \PasswordPolicy\PolicyBuilder(new \PasswordPolicy\Policy); $builder->minLength(6) ->upperCase();
以下任何方法都可以链在构建器类上以构建您的密码策略。
minLength(length)
长度
类型:int
密码必须包含的最小字符数。
maxLength(length)
长度
类型:int
最大字符数,密码必须包含。
upperCase([min])
min
类型:int
密码必须包含的最小大写字母数。
lowerCase([min])
min
类型:int
密码必须包含的最小小写字母数。
digits([min])
min
类型:int
密码必须包含的最小数字数。
specialCharacters([min])
min
类型:int
密码必须包含的最小特殊字符数。
doesNotContain(phrases [,phrases])
phrases
类型:string|array
密码不应包含的短语
示例
->doesNotContain('password', $firstName, $lastName)
minPassingRules(passesRequired, ruleSet)
passesRequired
类型:int
需要通过ruleSet中规则的最小数量,以便此规则通过
ruleSet
类型:\Closure
一个闭包,它被传递一个新的PolicyBuilder实例。
示例
// One of these rules must pass ->minPassingRules(1, function (PolicyBuilder $builder) { $builder->doesNotContain('password') ->minLength(10); })
Laravel
如果您是Laravel用户,此包可以无缝集成到您的验证器中。
安装包
首先添加以下服务提供者。
// config/app.php 'providers' => [ // ... \PasswordPolicy\Providers\Laravel\PasswordPolicyServiceProvider::class, ],
定义策略
在应用程序服务提供者(例如AppServiceProvider.php)中,您可以开始定义密码策略。
// App/Providers/AppServiceProvider.php // use PasswordPolicy\PolicyBuilder; /** * Bootstrap any application services. * * @return void */ public function boot() { \PasswordPolicy::define('default', function (PolicyBuilder $builder) { $builder->minLength(8) ->upperCase(3); // ... }); }
您可以根据需要定义任意数量的策略,但是建议尽可能使用'default'。
设置验证
定义好策略后,您就可以开始使用策略了。现在,一个新的'password'验证规则可供使用。
// Request class /** * Declare validation rules * * @return array */ public function rules() { return [ // ... 'password' => 'required|password' ]; }
默认情况下,验证器将使用'default'策略。要使用替代策略,请添加一个额外的参数
'password' => 'required|password:admin'