link - cakephp start
Usar el correo electrónico en lugar del nombre de usuario en el componente de autenticación de CakePHP (1)
Puedes configurarlo con:
public $components = array(
''Auth'' => array(
''authenticate'' => array(
''Form'' => array(
''fields'' => array(''username'' => ''email'')
)
)
)
);
Consulte también Configuración de controladores de autenticación en el libro de cocina.
Estoy trabajando en CakePHP 2.x. mi problema es que no quiero usar el nombre de usuario para iniciar sesión ... estoy tomando el correo electrónico y la contraseña del usuario y verifico este correo electrónico y contraseña de la base de datos. Tengo una tabla en mi nombre de usuario y tengo 3 campos ID , correo electrónico y contraseña
aquí está mi código
Modelo
<?php
class User extends AppModel {
public $useTable = ''user'';
}
?>
AppController
class AppController extends Controller {
public $components = array(
''Session'',
''Auth''=>array(
''loginRedirect''=>array(''controller''=>''users'', ''action''=>''admin''),
''logoutRedirect''=>array(''controller''=>''users'', ''action''=>''admin''),
''authError''=>"You can''t access that page",
''authorize''=>array(''Controller'')
)
);
public function isAuthorized($user) {
}
public function beforeFilter() {
$this->Auth->allow(''index'');
UserController
public function login()
{
if ($this->request->is(''post'')) {
if ($this->Auth->login()) {
$this->redirect($this->Auth->redirect());
} else {
$this->Session->setFlash(''Your email/password combination was incorrect'');
}
}
}
login.ctp
<?php
echo $this->form->create();
echo $this->form->input(''email'');
echo $this->form->input(''password'');
echo $this->form->end(''Authenticate'');
?>