好吧,这个问题与我最近在 Stack Overflow 上问的问题类似,但我基本上只是使用 CakePHP 书中的代码而不是我自己的代码来尝试理解为什么有些东西不起作用。
基本上,这个想法是允许用户在 Cake 2.0 版本中使用他们的电子邮件地址和用户名登录。然而,它总是返回详细信息不正确,但我仍然可以使用用户名登录,所以基本上 AppController 中的覆盖不会改变任何内容......更多所以我试图找出如何允许这两个字段登录。
正如原帖中所讨论的:在 CakePHP v2.0 中使用电子邮件地址或用户名登录 https://stackoverflow.com/questions/8874448/login-with-email-address-or-username-in-cakephp-v2-0/8877084@nIcO 已经整理了一些可能适用于这两个领域的东西,但这里解释的问题导致它不起作用。
有任何想法吗?任何人都可以使用 2.0 版进行电子邮件登录。
// AppController
public $components = array(
'Auth' => array(
'loginAction' => array(
'controller' => 'users',
'action' => 'login'
),
'authenticate' => array(
'Form' => array(
'fields' => array('username' => 'email')
)
)
)
);
// UsersController
public function login() {
if ($this->request->is('post')) {
if ($this->Auth->login()) {
return $this->redirect($this->Auth->redirect());
} else {
$this->Session->setFlash(__('Username or password is incorrect'), 'default', array(), 'auth');
}
}
}
虽然 id 将其添加到 UsersController (而不是 AppController)中,但这对我来说适用于电子邮件作为用户名:
public $components = array('Auth');
//beforeFilter in UsersController
function beforeFilter() {
parent::beforeFilter();
$this->Auth->loginAction = array('controller' => 'users', 'action' => 'login');
$this->Auth->authenticate = array(
'Form' => array(
'fields' => array('username' => 'email')
)
);
}
希望它能以某种方式有所帮助
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)