Como faço para solucionar um aplicativo CakePHP preso em um loop de redirecionamento?

StackOverflow https://stackoverflow.com/questions/810390

  •  03-07-2019
  •  | 
  •  

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?

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top