Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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.
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());
}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.
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