CakePHP 2.x – AuthComponent utilizando outra tabela do banco de dados
Comecei a me aprofundar no CakePHP, e vou começar a fazer uma serie de POST no qual eu julgo importa em aplicação com esse framework.
Por padrão o AuthComponent quando é chamado na AppController, ele procura a tabela Users mas nem sempre será essa tabela que queremos autenticar, esse POST será um breve exemplo para utilizarmos outra tabela na autenticação de usuários.
Primeiro o Cake possui três tipos de Autenticação:
Digest: autentica usando o Digest do Http
Form: Autenticação pelo formulario
Basic: ele autentica por Básica por http
Parâmetros que podemos passar
userModel: a tabela que você deseja autenticar
fields: por padrão é username e password você pode alterar elas no authentication por qual campo do banco de dados você quiser
scope: pode ser usado para ver se o usuário está ativo ou inativo
contain: opções para quando o registro do usuário é carregado, por exemplo carregar os POST dele de uma tabela.
login.ctp
echo $this->Session->flash('Auth'); echo $this->Form->create('Admins'); echo $this->Form->input('username'); echo $this->Form->input('password'); echo $this->Form->end('Login');
Importante: não se esqueça do CamilCase na hora do do $this->Form->create(‘Admins’) ele é muito importante essa parte você tem que usar a mesma que vai usar no banco de dados se usar $this->Form->create(‘admins’), ele não vai funcionar.
UsersController.php
function beforeFilter(){ parent::beforeFilter(); $this->Auth->authenticate = array( 'Form' => array( 'userModel' => 'Admins', 'fields' => array( 'username' => 'nome', 'password' => 'senha' ), 'scope' => array('Admins.ativo'=>'1') ) ); }
ele é mais simples que parece, eu passei pensando em quem ja conhece um pouco do Cakephp então se ficou perdido o codigo inteiro está aqui no database está o sql Download Aqui