我正在使用cakephp 3和他们的auth组件..一切正常但我希望在使用 md5 登录时匹配我的密码而不是默认的哈希密码逻辑cakephp 3使用...应该怎么做我要实现这个功能..下面是我的 AppController.php 文件到目前为止我所做的...
AppController.php
public function initialize()
{
parent::initialize();
$this->loadComponent('RequestHandler');
$this->loadComponent('Flash');
$this->loadComponent('Auth', [
'loginRedirect' => [
'controller' => 'Users',
'action' => 'dashboard'
],
'logoutRedirect' => [
'controller' => 'Users',
'action' => 'login'
],
'loginAction' => [
'controller' => 'Users',
'action' => 'login'
],
'authenticate' => [
'Form' => [
'userModel' => 'Users',
'fields' => [
'username' => 'user_email',
'password' => 'user_password'
]
]
],
'storage' => 'Session',
'unauthorizedRedirect' => false,
]);
}
正如我上面提到的,一切正常,我能够使用cakephp 3提供的默认散列方法成功登录,但我只想排除这种散列方法,需要使用 md5 进行检查.. 我怎样才能做到这一点 ?
有人可以指导我或帮助我吗?
谢谢
答案 0 :(得分:2)
好吧..伙计们..最终我找到了解决方案,下面是我想出来的......所以如果有人卡住或想要类似的功能,他们可以按照这个事情来完成这个......
请到这里http://book.cakephp.org/3.0/en/controllers/components/authentication.html#creating-custom-password-hasher-classes,在那里创建一个您需要遵循并需要创建的新文件。
然后在验证组件中,确保添加以下行
'Form' => [
'passwordHasher' => [
'className' => 'Legacy',
]
]
这对我有用,我希望它可以帮助别人......谢谢你们。