Usando o Component Auth do CakePHP

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.