pjhl/yii2-pwstrength

此扩展为 Yii Framework 2.0 提供一个简单的密码验证器。

安装: 77

依赖: 0

建议者: 0

安全: 0

星标: 0

关注者: 2

分支: 0

语言:JavaScript

类型:yii2-extension

1.0.1 2016-08-04 16:14 UTC

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