libriciel / cakephp-password
CakePHP 2.x 管理密码强度插件。使用 Bootstrap 3、jQuery,并依赖于 php-password 库。
Requires
- php: >=5.4.0
- cakephp/cakephp: 2.10.*
- libriciel/php-password: 1.1.*
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_1
和 symbols_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
中。