J'ai un site Web CakePHP qui fonctionne très bien.L'authentification de CakePHP ne fonctionne pas en production, mais fonctionne en test
Je viens de développer une nouvelle fonctionnalité qui, à un moment donné, connecte automatiquement l'utilisateur et le redirige vers une page située derrière le mur de connexion.
Cela fonctionne parfaitement bien dans ma machine dev, mais en production, l'utilisateur est redirigé vers la page de connexion.
Code pertinent: (pas beaucoup)
$objCustomer = $this->Customer->findById($customerId);
$this->Auth->login($objCustomer);
$this->redirect("/customers/signup");
client est le modèle qui est utilisé pour l'authentification.
Dans le serveur, je vois que je reçois redirigée vers/clients/inscription, et qui me redirige vers/clients/login
Ce qui me confond le plus est que cela fonctionne parfaitement dans ma machine.
I la valeur déversée retour de Auth-> Connectez-vous sur le serveur, et il retourne 1, donc en théorie tout va bien et que l'utilisateur devrait avoir été connecté.
Certaines choses que je peux penser que sont différents entre ma machine et le serveur:
- La machine Dev est Windows, le serveur est Linux. Cela introduit parfois des problèmes de sensibilité à la casse, mais la méthode d'inscription que je redirige est tout en minuscules, je ne vois pas où il pourrait y avoir un tel problème ici.
- La machine Dev est IIS, le serveur LiteSpeed. Peut-être que Litespeed est en train de baiser avec quelque chose? Ce serait la première fois depuis plus d'un an à faire tourner ce site en production que je trouverais quelque chose de différent à cause de LiteSpeed
- Le site de production est sur SSL, le dev n'est pas. Je ne vois pas comment cela pourrait être un problème.
Toutes les idées sont infiniment les bienvenus!
Merci!
Le site de production est-il servi _entirely_ sur SSL? On m'a dit que parfois les sessions se rompent lors du passage de/vers SSL. –
Point intéressant ... Il existe un formulaire HTTPS dans le site "A", qui publie des données dans une URL HTTPS dans le site "B" (où CakePHP est).Le traitement de cette requête, qui est sur HTTPS, fait la connexion automatique, et redirige vers une autre URL, qui est également sur HTTPS (en fait, il ne spécifie pas de protocole pour la redirection) –
Alors oui, tout se passe sur SSL, * * cependant **, il n'y a jamais une page rendue et envoyée au client depuis le site en question, donc ça peut être un problème de cookies, peut-être? Si c'est le cas, cependant, la question est de savoir pourquoi cela fonctionnerait sur HTTP, et pas sur HTTPs –