dee*_*eep 2 authentication cakephp
我想要一个changepassword模块.我想检查用户当前的密码是否与用户输入的密码相同.我已经定义了一个$ validate数组,如下所示.
`'old_password' => array(
'minLength' => array(
'rule' => array('minLength', 1),
'message' => 'Current Password is required'
),
'oldPass' => array(
'rule' => array('oldPass',array('old_password')),
'message' => 'Current Password is invalid'
)
),`
Run Code Online (Sandbox Code Playgroud)
并定义了一种检查当前密码的方法
`function oldPass($data){
if(!empty($data['old_password'])) {
$valid = false;
$userData = $this->Auth->user(); // here I am getting error
$oldPass = Security::hash(Configure::read('Security.salt') . $data['old_password']);
if ($userData['User']['password'] == $oldPass) {
$valid = true;
}
return $valid;
} else {
return false;
}
}`
Run Code Online (Sandbox Code Playgroud)
这是我得到Undefined属性的错误:User :: $ Auth [APP\models\user.php,第194行]致命错误:在非对象上调用成员函数user()
基本上我只想将当前密码与用户输入的密码相匹配
我使用$ this-> User-> validates()来验证.并获取错误消息我正在使用$ this-> set('validationErrorsArray',$ this-> User-> invalidFields());
请帮助我如何在模型中获取当前登录的用户ID.
mar*_*ark 23
有一种干燥的方法:
$uid = CakeSession::read("Auth.User.id");
Run Code Online (Sandbox Code Playgroud)
请注意,这仅适用于CakePHP 2.x - 仍然不应该这样做.通常,您将所需的会话数据显式传递到模型层.
在3.x中,您无法再静态访问会话,您肯定需要将数据传递到模型层.
| 归档时间: |
|
| 查看次数: |
23845 次 |
| 最近记录: |