pjhl / yii2-pwstrength
此扩展为 Yii Framework 2.0 提供一个简单的密码验证器。
1.0.1
2016-08-04 16:14 UTC
Requires
- php: >=5.4.0
This package is not auto-updated.
Last update: 2024-09-18 19:04:02 UTC
README
此扩展为 Yii Framework 2.0 提供一个简单的密码验证器。
DEMO
TODO: 制作演示。
安装
通过 composer 安装扩展
php composer.phar require pjhl/yii2-pwstrength:~1.0
或在您的 composer.json
文件的 require 部分添加以下行
"pjhl/yii2-pwstrength": "^1.0"
用法
1. 在您的模型中添加此内容
use pjhl\pwstrength\StrengthValidator; // use the validator in your model rules public function rules() { return [ [['username', 'password'], 'required'], [['password'], StrengthValidator::className()] ]; }
2. 更新您的视图文件
可选模板
<?= $form->field($model, 'password', [ "template" => "{input}" ])->passwordInput() ?>
<div id="strength" class="row" style="display: none;"> <div class="col-xs-12"> <div class="progress"> <div class="progress-bar progress-bar-danger" style="width:1%;"></div> </div> <div class="progress-label text-danger"> The password is too simple, must be at least 6 characters </div> </div> </div>
3. 添加 JS 监听器 (POS_READY)
jQuery(function(){ // Listen $('#loginform-password').on('strengthChange', function(e, data){ var passStrength = $('#strength'); var len = data.value.length; var label = ''; var labelType = ''; if (data.error) { label = data.error; labelType = 'danger'; } else { if (len<6) { label = 'The password is too simple, must be at least 6 characters'; labelType = 'danger'; } else { switch (data.strength) { case 'low': label = 'The password is too simple'; labelType = 'danger'; break; case 'middle': label = 'A middle password'; labelType = 'warning'; break; case 'strong': label = 'A strong password'; labelType = 'success'; break; } } } passStrength.find('.progress-bar') .removeClass('progress-bar-danger progress-bar-warning progress-bar-success') .addClass('progress-bar-'+labelType) .width(data.percent+'%'); passStrength.find('.progress-label') .removeClass('text-danger text-warning text-success') .addClass('text-'+labelType) .text(label); passStrength.show(); }); });
许可证
MIT