Comment résoudre une application CakePHP bloquée dans une boucle de redirection?

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

  •  03-07-2019
  •  | 
  •  

Question

J'ai un site CakePHP bloqué dans une boucle de redirection. J'ai supprimé chaque morceau de code qui effectue une redirection & Amp; J'ai désactivé autoRedirect sur l'objet Auth.

Cela s'est produit lorsque je me suis déconnecté du site et a persisté même après la suppression de tous les cookies et le simple fait d'essayer de charger la page d'accueil. L'action index est dans $this->Auth->allow.

Je ne devrais pas, cela continue d'essayer de me rediriger vers / users / login, qui redirige ensuite les boucles. L'action de connexion est également dans la liste des autorisations

Quelqu'un at-il une idée de ce qui pourrait causer cela?

Était-ce utile?

La solution

Votre <cake>/app/app_controller doit disposer d'une beforeFilter() méthode contenant tous les comportements du composant Auth . L'un de ces comportements est l'endroit où envoyer lorsqu'un utilisateur n'est pas connecté.

vous chercherez quelque chose comme:

// 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

Autres conseils

Cela se produit également dans CakePHP 1.3 si vous ajoutez un composant personnalisé qui étend Composant au lieu de Objet .

hé parfois, si votre connexion est incorrecte, l’application essaiera de se connecter au mysql et se mettra en boucle. Alors, regardez toujours si la configuration de la base de données est correcte.

au revoir.

J'ai eu exactement le même problème et, lorsque j'ai redémarré le service mySql, la redirection s'est arrêtée. Ajoutez donc ceci à votre liste de points à vérifier.

Eh bien, il semblerait qu'il y ait un certain nombre de raisons pour lesquelles cela pourrait se produire dans mon cas, j'essayais d'accéder

application / utilisateurs / add

et il est sorti que je manquais

'add'=>'*',

dans le tableau des autorisations du fichier usersController.php

J'ai récemment eu ce problème et je ne sais pas pourquoi, mais il a été corrigé lorsque j'ai changé (dans ma méthode AppController beforeFilter ()):

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

à

$this->Auth->allow();

Bien sûr, dans mes contrôleurs ultérieurs, je refuse les actions appropriées.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top