Probléme session perdu

Par essofal, il y a 12 ans


Bonjour,

tout d'abord merci pour ce site !

voici mon problème:

j'utilise cakephp 2.4 sur un vps, je fais une authentification sans le composant auth, avec ce composant même problème, certaines fois
ma Session est perdu.


si user ok:
if (!empty($res)){
//-- creer session
$this->Session->write('UserId', $res'User']'id']);


ensuite dans mes pages:
if ($this->Session->check('UserId') == false){
return $this->redirect('/users/login');
}


j'ai cherché mais rien trouver qui marche, il est difficile de reproduire le problème, cela est aléatoire, en local pas de problème.

Une autre chose après logout:
public function logout(){
$this->Session->destroy();
$this->Session->delete('UserId');
$this->Session->setFlash("Déconnexion réussie !",
'flash',
array('class' => 'succes-redirect'));
$url = array('controller' => 'users', 'action' => 'index');
$this->header("refresh:1; url='".Router::url( $url )."'");
}


je peux encore voir les infos comme ci j'étais toujours connecté, si je reviens dans mon espace membre sur une page, il faut que j'actualise cette page pour revenir à la page login alors que je suis déconnecté.
Je pense que cela vient du cache du navigateur, pour éviter ce problème sous firefox je met 'ne jamais conserver l'historique".

Je suis en http pas de https.

Merci de votre aide.

Olivier

8 réponses

Lartak, il y a 12 ans

Bonsoir.
Pour utiliser l'authentification sur CakePHP, il est indispensable d'utiliser le composant Auth.
Ensuite,

$this->Session->write()

ne permet pas de créer une session, mais d'écrire une variable dans la session.

essofal, il y a 12 ans

Bonjour,

dans mon cas je n'utilise pas le composant Auth, j'utilise le composant Session.

App::uses('Controller', 'Controller');

class AppController extends Controller {

public $components = array('Session', 'Cookie');


donc la session est bien crée.

merci

Olivier

Lartak, il y a 12 ans

Bonjour.
Tu ne comprends pas que tu as besoin des deux, tant pis pour toi.
Regardes bien le chapitre sur l'authentification et tu comprendras mieux.

essofal, il y a 12 ans

merci Lartak11 j'avais pas compris.

j'ajoute le Auth avec Allow() comme je ne l'utilise pas

Olivier

essofal, il y a 12 ans

Bonjour à tous,

après l'ajout de Auth, toujours le même bug qui apparait rarement.

Difficile de débugger ce problème qui est aléatoire.

Je vous tiens au courant si je trouve une solution

Lartak, il y a 12 ans

Déjà, si tu utilisais le composant auth pour la connexion et la déconnexion, je pense que tu n'aurais aucun problème et tu aurais moins de codes dans les deux fonctions à écrire.

essofal, il y a 12 ans

j'ai utilisé ce composant au début, mais quand j'ai rencontré ce bug j'ai fait la modification.

Je viens de désactiver le ssl sur mon serveur, j'attends de voir si le bug se reproduit.

Merci Lartak11

essofal, il y a 12 ans

Bonjour à tous,

voila mon problème est résolu cela venait du ssl qui poser problème au niveau des sessions.

J'en ai profiter pour mettre la dernière version 2.4.5 tout fonctionne correctement.

bonne journée et merci