2016-09-15 114 views
0

我使用cakephp 3和他们的身份验证组件..一切工作正常,但我想匹配我的密码,而登录使用md5而不是默认的哈希密码逻辑cakephp 3使用..我应该怎么做才能实现此功能。这里下面是我AppController.php文件是我迄今所做..CakePHP 3身份验证密码字段与MD5

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 ..我该怎么做?

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

感谢

回答

2

确定..家伙..最后,我已经找到了解决方案,并在此下面是我想出了..所以如果有人被卡住或希望类似的功能,他们可以按照这个东西来完成这..

去这里http://book.cakephp.org/3.0/en/controllers/components/authentication.html#creating-custom-password-hasher-classes那里他们说创建一个新的文件,你需要遵循和需要创建。

然后在你的验证组件确保您添加下面一行

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

这是为我工作,我希望它可以帮助别人。谢谢你们。

+1

我会_highly_!建议您[**将密码**(http://book.cakephp.org/3.0/en/controllers/components/authentication.html#changing-hashing-algorithms)迁移到更安全的哈希方法! – ndm

+0

是啊..其实我想遵循cakephp提供的相同的哈希密码,实际上它更安全,但我只想同时学习如何使用** md5 **或** sha1 **来更改此功能**对于这个问题。 –