Gestion session/cookie safari/browser-multithread/smartphone
Posté : 25 août 2009, 11:52
Bonjour à tous,
Je suis confronté à un problème difficilement "cernable" et reproductible...
Je pose les bases:
Nous avons un système d'authentification sur notre site, composé d'un côté de sessions pour une connection qui sera close lors de la fermeture du navigateur, et de l'autre, d'un cookie proposant de retenir un identifiant lié à l'utilisateur, afin de lui permettre de rester connecté même après fermeture/réouverture du navigateur. Le cookie s'il est présent et valide ne fait que créer les sessions adéquates.
Jusque là rien de bien extraordinaire (même si je simplifie un petit peu), tout système de connection ressemble plus ou moins à cela... Et tout fonctionne bien dans l'ensemble, sauf...
Lorsque les utilisateurs essayent de se connecter via smartphone (principalement iphone) directement, sur un poste accédant à internet via un smartphone ou pour des utilisateurs possédants des browser multi-thread (principalement safari 4/Mac OS et chrome windows), il arrive qu' a l'ouverture d'un nouvel onglet ou même durant la navigation sur notre site, les cookies (soient les cookies créé manuellements, soit le PHP_SESSID) ne soient plus pris en compte... et paf => deconnection!
J'ai eu beau triturer notre système de connection, je ne vois pas à priori de problème de ce côté là (même si ça n'est pas exclu
) donc je me suis rabattu sur le materiel client et les configs clients, mais j'avoue être un peu perdu, je n'ai pas réussit à reproduire systématiquement le "bug"...
Je sais que les données que je vous donne sont bien vague, mais en désespoir de cause, je me dit que certains d'entre vous ont peut-être eu à faire à ce genre de problèmes...
Merci d'avance pour vos retours
EDIT: Alors en regardant à droite à gauche, j'ai fait aussi un tour côté serveur, et j'ai trouvé que la configuration des sessions sur le serveur était peut-être la cause du bazard...
En gros si j'ai bien compris (je suis pas un pro de l'admin sys),
Bien que le cookie PHPSESSID ait une durée de vie infinie, les données côté serveur elles ont une durée de vie limitée à 24 minutes (si mes calculs sont bons), on ajoute à cela la probabilité d'exécution du garbage collector, est-ce que ça pourrait pas ressembler aux symptomes observé? (du coup les configs clients plus ou moins similaire ne seraient plus qu'un fruit du hasard...?)
Je suis confronté à un problème difficilement "cernable" et reproductible...
Je pose les bases:
Nous avons un système d'authentification sur notre site, composé d'un côté de sessions pour une connection qui sera close lors de la fermeture du navigateur, et de l'autre, d'un cookie proposant de retenir un identifiant lié à l'utilisateur, afin de lui permettre de rester connecté même après fermeture/réouverture du navigateur. Le cookie s'il est présent et valide ne fait que créer les sessions adéquates.
Jusque là rien de bien extraordinaire (même si je simplifie un petit peu), tout système de connection ressemble plus ou moins à cela... Et tout fonctionne bien dans l'ensemble, sauf...
Lorsque les utilisateurs essayent de se connecter via smartphone (principalement iphone) directement, sur un poste accédant à internet via un smartphone ou pour des utilisateurs possédants des browser multi-thread (principalement safari 4/Mac OS et chrome windows), il arrive qu' a l'ouverture d'un nouvel onglet ou même durant la navigation sur notre site, les cookies (soient les cookies créé manuellements, soit le PHP_SESSID) ne soient plus pris en compte... et paf => deconnection!
J'ai eu beau triturer notre système de connection, je ne vois pas à priori de problème de ce côté là (même si ça n'est pas exclu
Je sais que les données que je vous donne sont bien vague, mais en désespoir de cause, je me dit que certains d'entre vous ont peut-être eu à faire à ce genre de problèmes...
Merci d'avance pour vos retours
EDIT: Alors en regardant à droite à gauche, j'ai fait aussi un tour côté serveur, et j'ai trouvé que la configuration des sessions sur le serveur était peut-être la cause du bazard...
En gros si j'ai bien compris (je suis pas un pro de l'admin sys),
Bien que le cookie PHPSESSID ait une durée de vie infinie, les données côté serveur elles ont une durée de vie limitée à 24 minutes (si mes calculs sont bons), on ajoute à cela la probabilité d'exécution du garbage collector, est-ce que ça pourrait pas ressembler aux symptomes observé? (du coup les configs clients plus ou moins similaire ne seraient plus qu'un fruit du hasard...?)