start link create cakephp authentication cakephp-2.0 cakephp-2.1

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''); ?>