Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Raphael Figa

Verificar se o usuário está logado com Auth

Recommended Posts

Olá pessoal

 

Estou começando a trabalhar com Cake, estava estudando e seguindo alguns tutoriais, entendi e fiz um sistema de autenticação que está funcionando perfeitamente.

No caso tenho a seguinte url:

 

site.com.br/usuarios/login -> Exibe o formulário de login

site.com.br/usuarios/ -> Chama o método Index da classe Usuarios_Controller

 

Porém nessa ultima url, gostaria de ter dois comportamentos.

Se alguém acessar essa página sem estar logado exibe um conteúdo X, caso esteja logado exibe conteudo Y.

 

Sei que tenho que fazer isso com sessões, mas gostaria de aproveitar a sessão que próprio Auth criou, como para fazer essa verificação?

 

Agradeço antecipadamente.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Depois de continuar pesquisando não sei se esta é a melhor forma, ou se existe outra forma de fazer.

 

Lendo a documentação, vi que caso a sessão não exista o método retorna NULL;

Logo,

 

if(is_null($session->read('Auth.Usuario.username'))){
//Usuário não logado
}else{
//Usuário logado
}

 

O que acham desta solução? É a melhor? Ou existe alternativa mais eficiente?

 

Raphael Figa

http://www.raphaelfiga.com

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se você estiver usando o CakePHP 2.0, você pode usar assim em seu AppController.php

$this->Auth->loginRedirect = array('controller' => 'dashboard', 'action' => 'index');

 

e assim em seu controller de usuários

 

if ($this->Auth->login()) {
       $this->Session->setFlash(__('Você está logado'), 'default', array('class' => 'messageError'), 'auth');
$this->redirect($this->Auth->redirect());
} 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado pela resposta m@dDog

 

No caso, isso seria para aplicar semelhante ao Google, se o usuário está logado aparece o nome dele lá em cima. Caso contrário exibe um link para login.

E sem redirecionamentos, pois, posteriormente farei o Formulário de Login, que aparece sobre o site, e faz a requisição via Ajax.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.