如果在控制器中比如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
本文介绍了如何在CakePHP中配置身份验证组件以实现用户登录功能。包括如何设置密码的加密方式,例如MD5加密;如何调整认证字段为电子邮件而非默认的用户名;以及在不提供用户名字段时可能遇到的问题及解决方案。
182

被折叠的 条评论
为什么被折叠?



