Linux slogan
Visite também: Segurança Linux · BR-Linux.org · Dicas-L · Doode · NoticiasLinux · SoftwareLivre.org · UnderLinux



» Screenshot
Linux: Natty "terminado"
Por pinduvoz
» Login
Login:
Senha:

Se você ainda não possui uma conta, clique aqui.

Esqueci minha senha


Dica

Autenticação com o framework CakePHP
Linux user
Publicado por Andre Dias em 01/07/2009

Login: diasbandeira, 5346 pontos
[ Hits: 4499 ]

Autenticação com o framework CakePHP

Nesta dica pretendo explicar como fazer uma simples autenticação usando o framework cakePHP.

1. O primeiro passo é criar suas tabelas, no meu exemplo estou usando o MySQL. Crie as tabelas que serão usadas:

CREATE TABLE usuarios (
   id integer auto_increment,
   nome char(50),
   login char(50),
   password char(50),
   grupo_id integer,      
   PRIMARY KEY (id)
);
CREATE TABLE grupos (
   id integer auto_increment,
   nome char(50),      
   PRIMARY KEY (id)
);

2. Adicione o componente de autenticação no app_controller de sua aplicação. Edite o arquivo app/app_controller.php e acrescente:

var $components = array('Auth');

3. Usando o cake bake crie: controllers, visões, modelos de: usuários, grupos.

4. Como não estamos usando a tabela com nome "users", devemos alterar o padrão com informações de nossa tabela.

No app_controller devemos acrescentar:

function beforeFilter(){
   $this->Auth->userModel='Usuario';
   $this->Auth->fields=array(
      'username'=>'login',
      'password'=>'senha'
   );
}

5. Devemos criar no controller dos usuários as funções para login e logout.

Acrescente em app/controller/controllers/usuario_controller.php:

function login(){
}

function logout(){
   $this->Session->setFlash('Ate +');
   $this->redirect($this->Auth->logout());
}

6. Devemos criar a visão para a tela de login que o usuário usará para autenticação.

Crie o arquivo dentro de views/usuarios/login.ctp:

<h2>Login</h2>

<?php
   echo $form->create('Usuario',
   array('url' => array(
      'controller' => 'usuarios',
      'action' =>'login')));
   echo $form->input('Usuario.login');
   echo $form->input('Usuario.senha',array('type'=>'password'));
   echo $form->end('Login');
?>

7. Após seguir estes passos seu sistema já autenticará quando você tentar acessar alguma função.

Para que você tenha permissão de acessar todas as funções para poder acrescentar um usuário para teste, edite o arquivo app/app_controller.php e dentro de "beforefilter" coloque:

   $this->Auth->allow('*');

Dessa forma será possível acrescentar usuários.

Após acrescentar os usuários, edite novamente este arquivo colocando as permissões para um usuário sem autenticação. Neste caso estarei permitindo que apenas veja o index visualize os dados.

   $this->Auth->allow('index','view');

É isso! Obrigado.


Outras dicas deste autor
Nenhuma dica encontrada.

Leitura recomendada
   Dica Linux recomendada Ativando e desativando a placa de rede em um Telecentro (Metasys)
   Dica Linux recomendada Configurando teclado ABNT (Português) Debian Lenny
   Dica Linux recomendada Replicação no LDAP com slurp
   Dica Linux recomendada Balance - Load Balance para servidores (substituto do NLB Microsoft)
   Dica Linux recomendada VirtualBox: Configurando portas USB e pastas compartilhadas

Comentários
[1] Comentário enviado por dotti em 01/07/2009 - 16:38h:

Opa Andre, algumas correções de coisas que devem ter passadas despercebidas na hora de transcrever a dica:

No item 4:

Onde está

$this->Auth->fields=array(
'username'=>'login',
'password'=>'senha'
);

Deveria ser

$this->Auth->fields=array(
'username'=>'login',
'password'=>'password' //este é o nome que foi dado ao campo com senha no BD
);

---
No item 5, o nome correto do controller deve ser "usuarios_controller.php" , lembrando que nome dos controladores são sempre no plural em relação ao modelo/entidade (usuario => usuarios)

Valeu a iniciativa ;]

[2] Comentário enviado por mordecai em 14/01/2010 - 10:27h:

Funcionou ! Valeu!



Contribuir com comentário


  
Para executar esta ação você precisa estar logado no site, caso contrário, tudo o que for digitado será perdido.
Responsável pelo site: Fábio Berbert de Paula - Conteúdo distribuído sob licença GNU FDL
Site hospedado por:

Viva o Linux

A maior comunidade Linux da América Latina! Artigos, dicas, tutoriais, fórum, scripts e muito mais. Ideal para quem busca auto-ajuda em Linux.