Tenho visto várias pessoas com dúvidas em relaxão a utilização do componente Auth, por este motivo descidi escrever este pequeno tutorial.

Tudo começa com seu app_controller

app_controller.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
<?php
class AppController extends Controller {
 
	public $components = array('Auth');
 
	public function beforeFilter(){
 
		/** 
		* Configuração das para que o Auth identifique os 
		* campos de acesso no sistema
		*/
		$this->Auth->fields = array(
			'username' => 'email',
			'password' => 'password'
		);
 
		/**
		* Caso acesso a area restrita e não logado é
		* redirecionado para efetuar login
		*/
		$this->Auth->loginAction = array(
			'controller' => 'users',
			'action' => 'login',
			Configure::read('Routing.admin') => true
		);
 
		/**
		* Redirecionamento após login
		*/
		$this->Auth->loginRedirect = array(
			'controller' => 'users',
			'action' => 'index',
			Configure::read('Routing.admin') => true
		);
 
		/**
		* Redirecionado quando o usuário requesita logout
		*/
		$this->Auth->logoutRedirect = array(
			'controller' => 'users',
			'action' => 'login',
			Configure::read('Routing.admin') => true
		);
 
		/**
		* Somente user ativo e administradores
		*/
		$this->Auth->userScope = array('User.status' => 1);
 
		// Autenticação somente para admin
		if (!isset($this->params['prefix'][Configure::read('Routing.admin')])) {
			$this->Auth->allowedActions = array('*');
		}else{
			$this->Auth->allowedActions = array(
				'admin_recover_password', // Caixa para colocar e-mail e recuperar senha
				'admin_edit_password' // link que é enviado por email para cadastrar nova senha
			);
		}
 
		$this->Auth->loginError = 'Erro na autenticação';
		$this->Auth->authError = 'É necessário a autenticação no sistema';
		$this->Auth->authorize = 'controller';
	}
 
	/**
	* Verifica se usuário esta logado
	*
	* @return boolean
	*/
	public function isAuthorized(){
		return true;
	}
}

em meu controller

users_controller.php

1
2
3
4
5
<?php
class UsersController extends AppController {
	public function login(){}
}
...

Feito estes ajustes é so criar as view e pronto o component Auth fará o resto.

ps: Ao adicionar um usuário o Auth se encaregará de fazer o hash da senhas.

até a proxima.