libriciel / cakephp-password

CakePHP 2.x 管理密码强度插件。使用 Bootstrap 3、jQuery,并依赖于 php-password 库。

安装: 36

依赖者: 0

建议者: 0

安全: 0

类型:cakephp-plugin

2.0.2 2024-01-25 15:30 UTC

This package is auto-updated.

Last update: 2024-09-25 17:05:31 UTC


README

CakePHP 2.x (2.10.x) 管理密码强度插件。使用 Bootstrap 3 (3.3.5)、jQuery (3.2.1),并依赖于 php-password (1.1.0) 库。

配置

插件加载

CakePlugin::loadAll(
    [
        // ...
        'LibricielPassword' => ['bootstrap' => false, 'routes' => false],
        // ...
    ]
);

最小强度

密码的最小强度可以通过 LibricielPassword.minStrength 键进行配置;默认值是 4。

Configure::write('LibricielPassword.minStrength', 4);

使用

密码强度验证

例如,在 User 模型类中。

class User extends AppModel
{
    // ...

    public $actsAs = [
        'LibricielPassword.LibricielPassword'
    ];

    // ...

    public $validate = [
        // ...
        'passwd' => [
            'notBlank' => [
                'rule' => ['notBlank']
            ],
            'checkPasswordStrength' => [
                'rule' => ['checkPasswordStrength']
            ],
            'compareWith' => [
                'rule' => ['compareWith', 'passwd_confirm']
            ],
        ],
        'passwd_confirm' => [
            'notBlank' => [
                'rule' => ['notBlank']
            ],
            'compareWith' => [
                'rule' => ['compareWith', 'passwd']
            ],
        ],
        // ...
    ];
    // ...
}

验证规则 compareWith 可以直接通过插件中的 LibricielPasswordBehavior 类获得。

解释密码强度的模态框

该模态框包含密码强度计算的理论解释、使用的符号类表以及不同密码强度级别的示例表。

注意

symbols_1symbols_2 的符号是动态从 PasswordGeneratorAnssi 类获取的,因此,如果修改了这些类使用的符号,模态框的内容将始终是最新的。

示例表中的密码是即时生成的,因此,如果用户选择使用这些示例密码,降低了他将要使用的密码被破解的风险,尽管这种方法显然不可取(中间人攻击、浏览器缓存访问等)。

显示模态框的文本和按钮

模态框具有 HTML 属性 id,其值为 modal-password-help

第二个参数是可选的,因为它是从配置中获取的默认值(键 LibricielPassword.minStrength)。

echo $this->element('LibricielPassword.password-help-block', ['minStrength' => LibricielPassword::minStrength()]);

模态框的代码

从 CakePHP 代码中包含模态框

第二个参数是可选的,因为它是从配置中获取的默认值(键 LibricielPassword.minStrength)。

echo $this->element('LibricielPassword.Modal/password', ['minStrength' => LibricielPassword::minStrength()]);

模态框出现时,配置的最小密码强度对应的列单元格将获得额外的 CSS 类 highlight(见下文)。

使用的 CSS 类

当用户将鼠标悬停在示例表上,如果鼠标在“强度”列,则相应的理论表格上方的单元格将获得额外的 CSS 类 highlight

如果用户将鼠标悬停在“示例”或“描述”列,则只有相应的单元格将获得这个额外的 CSS 类。

CSS 规则建议

用于在模态框的辅助元素中突出显示密码强度列的 CSS 代码位于文件 webroot/css/libriciel-password.css 中。