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


essofal
Auteur
Réponse acceptée

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

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
Auteur

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

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
Auteur

merci Lartak11 j'avais pas compris.

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

Olivier

essofal
Auteur

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

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
Auteur

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