Cakephp 3使用MD5验证组件密码字段

时间:2016-09-15 03:43:41

标签: md5 cakephp-3.0

我正在使用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 进行检查.. 我怎样才能做到这一点 ?

有人可以指导我或帮助我吗?

谢谢

1 个答案:

答案 0 :(得分:2)

好吧..伙计们..最终我找到了解决方案,下面是我想出来的......所以如果有人卡住或想要类似的功能,他们可以按照这个事情来完成这个......

请到这里http://book.cakephp.org/3.0/en/controllers/components/authentication.html#creating-custom-password-hasher-classes,在那里创建一个您需要遵循并需要创建的新文件。

然后在验证组件中,确保添加以下行

'Form' => [
                'passwordHasher' => [
                    'className' => 'Legacy',
                ]
            ]

这对我有用,我希望它可以帮助别人......谢谢你们。