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