Yii2 密码验证规则隐藏的很深 [ 2.0 版本 ]
//最开始找了半天,validatePasswrod这个方法是从哪里进去的,原来是rules
public function rules()
{
return [
// password is validated by validatePassword()
['password', 'validatePassword'],
];
}
//------
public function validatePassword($attribute, $params)
{
if (!$this->hasErrors()) {
$user = $this->getUser();
//validatePassword 这个方法编辑器都找错了.框架有些绕
//正常找的是UserAll里面的validatePassword方法
if (!$user || !$user->validatePassword($this->password)) {
$this->addError($attribute, '用户名密码错误.');
}
}
}
冯叙澎
注册时间:2017-09-30
最后登录:2020-01-07
在线时长:9小时3分
最后登录:2020-01-07
在线时长:9小时3分
- 粉丝2
- 金钱195
- 威望30
- 积分585
共 2 条评论
<?php //实现原理.以后可以不用MD5了.知识是不是可以升级了 //register //生成哈希,页面每次刷新生成的值都不一样,但是都可以验证 $pwd = password_hash(123456, 1); //login $hash = '$2y$13$aM7ksVIJT/oWyU.LaYFtM.D6Yk8F9d1exgRQfdDCSvGPQ71i0sRee';//都是123456加密后的哈希 $hash2 = '$2y$10$lbi92QQDDcpwnWBKwXFcPOt7HCHW.PhNaSZhocYglhds6tXzwS4Am';//都是123456加密后的哈希 $r1 = password_verify(123456, $hash);//都可以返回true $r2 = password_verify(123456, $hash2);//都可以返回true
加密方法都是 php 函数
password_hash()
嗯,是的.加密用
password_hash()
,验证用password_verify()