sempre Realimentação positiva
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.
Residente em São Paulo/SP Brasil, Cursando Engenharia da Computação Na Universidade São Judas Tadeu desenvolvedor de PHP a 5 anos e grande utilizador de CakePHP.
Hurry
January 12th, 2010 at 12:44 am
E da pra determinar nivel de acesso e restriçõs nos actions?
Felipe Theodoro
January 12th, 2010 at 8:41 am
Eu demonstrei o uso do Auth não do ACL!!!
Logo mais vo postar a integração dos dois..
Bruno Trazzini
January 13th, 2010 at 9:15 am
Cara porque você coloca public na frente de todas funções?
Felipe Theodoro
January 13th, 2010 at 9:24 am
Da uma estudada na documentação do php
http://br2.php.net/manual/pt_BR/language.oop5.visibility.php
Felipe Theodoro
January 13th, 2010 at 9:51 am
Você colocar public ou não colocar o intrepretador do PHP intende sendo methodo de scopo publico
o mesmo ocorre em atributos public e var
var $attribute = null;
é o mesmo que:
public $attribute = null;
public function method(){}
é o mesmo que:
function method(){}