Como faço para solucionar um aplicativo CakePHP preso em um loop de redirecionamento?
Pergunta
Eu tenho um site CakePHP que está preso em um loop de redirecionamento. Eu removi cada pedaço de código que faz um redirecionamento e eu desligado autoRedirect no objeto Auth.
Isso ocorreu quando eu entrei para fora do local e tem persistido mesmo após a exclusão de todos os cookies e apenas a tentar carregar a página inicial. A acção de índice está em $this->Auth->allow
.
Eu não deveria, ele continua tentando me redirecionar para / users / login que loops em seguida, redirecionar. A ação de login também está na lista de permitidos
Alguém tem alguma idéia o que poderia causar isso?
Solução
Seu <cake>/app/app_controller
deve ter um método beforeFilter()
com todos os comportamentos de Auth componente. Um desses comportamentos é para onde enviar quando um usuário não está logado.
você vai estar à procura de algo como:
// If cake should redirect automatically or you will do it in the User.login()
$this->Auth->autoRedirect = true;
// And if the autoRedirect is true, where to redirect
$this->Auth->loginRedirect = '/user/login';
G'luck
Outras dicas
Isso também ocorre em CakePHP 1.3, se você adicionar um componente personalizado que estende Componente em vez de objeto .
hey, às vezes, se você db conexão está errado ,,, o aplicativo estará tentando conectar ao mysql, e estará em looping. Então, hair olhar se a configuração de banco de dados está certo.
adeus.
Eu tive o mesmo problema exatamente, e quando eu reiniciado o serviço MySQL o redirecionamento parou. Então, adicione a sua lista de coisas a verificar.
Bem, parece que há uma série de razões pelas quais isso pode acontecer no meu caso eu estava tentando o acesso
cakeapplication / users / add
e descobriu-se que eu estava faltando
'add'=>'*',
na matriz permissões em usersController.php
Recentemente, tive este problema e eu não sei porquê, mas foi fixado quando eu mudei (no meu método AppController beforeFilter ()):
$this->Auth->allow('*');
para
$this->Auth->allow();
É claro que, em seguida, em meus controladores subseqüentes nego as ações approriate.