如果在控制器中比如users_controller中包含了Auth组件,那么用户输入的密码会被自动加密处理。且支持多种加密方式。
比如如果你希望密码以md5加密,那么可以在beforeFilter中调用
Security::setHash('md5');
如果希望使用邮件而不是用户名做登录验证,那么可以设置Auth的字段如下:
$this->Auth->fields = array(
'username' => 'email',
'password' => 'password'
);
在使用邮件注册时,你仍然需要提供username(至少需要提供一个隐藏的username字段data['User']['username'],
否则你会遇到密码没有被自动加密的情况。这是因为Auth组件在启动时对username做了判断,如果未提供username,
Auth组件会忽略hashPasswords的自动处理。
iefreer