无法使用电子邮件作为登录cakephp

无法使用电子邮件作为登录cakephp,cakephp,cakephp-2.3,Cakephp,Cakephp 2.3,我无法在登录appcontroller时对用户进行身份验证。我以非管理员身份登录,但仍然可以通过。事实上,我没有收到任何错误,也没有出现调试值,因此isAuthorized($user)不起作用。我在没有电子邮件的情况下使用相同的代码,并在另一个网站上使用用户名,效果很好。我看了看文档中的代码,真的看不出问题所在。用户表中的字段有角色、电子邮件和密码。由于相同的代码在其他地方也可以工作,没有用户名为email,所以当我检查了如何在$components中添加用户名为email时,我一直在做什么

我无法在登录appcontroller时对用户进行身份验证。我以非管理员身份登录,但仍然可以通过。事实上,我没有收到任何错误,也没有出现调试值,因此isAuthorized($user)不起作用。我在没有电子邮件的情况下使用相同的代码,并在另一个网站上使用用户名,效果很好。我看了看文档中的代码,真的看不出问题所在。用户表中的字段有角色、电子邮件和密码。由于相同的代码在其他地方也可以工作,没有用户名为email,所以当我检查了如何在$components中添加用户名为email时,我一直在做什么

我有一个名为teacher的用户,该用户总是在不应该登录时登录,并且我启用了简单密码。我检查了数据库中的电子邮件和角色值,一切正常


如果您有DebugKit,那么请检查loggedIn用户信息..我取出了'authenticate'=>array('Form'=>array('fields'=>array('username'=>'email','password'=>'password')上面的行与我的工作版本相匹配。我现在甚至不能与任何用户登录?我已经安装了debugkit,但当我取出“身份验证”行时,我仍然不能如上所示登录。如果($This->Auth->login()),该行在usercontroller中不起作用因此,害羞的我不能登录我解决了这个问题,摆脱了电子邮件作为用户名,改为使用用户名。这是cakephp的默认值,将引起最少的麻烦
 public $components = array(
     "Email",
    'Session',
    'Auth' => array(
        'loginRedirect' => array('controller' => 'users', 'action' => 'dashboard'),
        'logoutRedirect' => array('controller' => 'users','action' => 'login'  ),
          'authenticate' => array( 'Form' => array('fields' => array('username' => 'email', 'password' => 'password'),
         'authorize' => array('Controller') // Added this line    
    )))
);


        public function isAuthorized($user) {
            // Admin can access every action
            debug($user['role']); //// NO output
            debug("asdddddddddddddddddddddddddd");//// NO output

            if (isset($user['role']) && $user['role'] === 'admin') {
                return true;
            }

            // Default deny
            return false;
        }