IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

AJAX + session expirée = redirection foireuse


Sujet :

Langage PHP

  1. #1
    Membre actif
    Inscrit en
    Octobre 2005
    Messages
    908
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 908
    Points : 271
    Points
    271
    Par défaut AJAX + session expirée = redirection foireuse
    Bonjour à tous,

    je suis en train de développer un back-office pour un site Web.
    Son accès est "sécurisé" à l'aide de session avec une gestion de la date d'expiration (au delà de 30 Min, une redirection est lancé via header("Location: /back-office/");.
    Ainsi, tous les scripts PHP accessible par le client testent la validité de la session avant d'exécuter le script demandé.
    Pour la gestion du back-office, j'utilise AJAX pour l'exécution d'action (ajout, modif, suppression).
    Le problème apparait lorsque l'utilisateur lance une procédure AJAX alors que la session est expirée ...

    en effet, le script appelé détecte l'expiration et redirige vers /back-office/ mais comme c'est de l'AJAX qui injecte la réponse dans la DOM, l'utilisateur se retrouve avec la page d'authentification à l'intérieur de la page en cours... au lieu de recharger la page en cours.

    Malheureusement, je ne vois pas comment résoudre ce problème...
    Une aide serait donc la bienvenue !

    Merci d'avance.
    @+

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    957
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 957
    Points : 1 177
    Points
    1 177
    Par défaut Quelques pistes
    1 - Avant toute execution de ton code Ajax, executer une fonction Ajax qui vérifie l'état de la Session (Redirection si code a expiré).

    2 - Executer en tache de fond d'un script Ajax qui se charge de vérifier toutes les minutes si la session a expiré.

    3 - Programmer un compteur javascript, qui redirigera le client sur la page de login si aucune action n'est effectué pendant 30mn (durée de ta session)

    4 - Tu pourrais mettre sur ta page de login, un hidden field session_expire = true
    et vérifier l'existance de ce champ a chaque retour d'une requete Ajax.

  3. #3
    Membre actif
    Inscrit en
    Octobre 2005
    Messages
    908
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 908
    Points : 271
    Points
    271
    Par défaut
    Les 3 premiers points semblent intelligents (le 2 et le 3 vont de paire... )
    Par contre, je ne comprends pas le 4... pourrais-tu développez un petit peu plus STP ?
    Merci.

    Au cas où, je reformule ma question : n'y a t-il pas moyen de rediriger la page principale depuis un script appelé ?

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    957
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 957
    Points : 1 177
    Points
    1 177
    Par défaut
    2 - celui la fait une interrogation coté serveur pour savoir si la page a expiré. (c'est un peu lourd)

    3 - celui la n'interroge pas le serveur, il utilise un compteur javascript qui dit, au bout de 30mn (temps de la session) je me dirige sur la page de login si aucune action est effectué.

    4 - pour le 4 je vais te donner une variante plus facile a implémenter : tu pourrais avoir un javascript dans ta page de login qui detecte s'il est dans un DIV ou tout autre conteneur, si le test est vrai tu demandes a la page de login de se recharger en pleine page.

  5. #5
    Membre actif
    Inscrit en
    Octobre 2005
    Messages
    908
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 908
    Points : 271
    Points
    271
    Par défaut
    ok...

    j'ai donc tester la solution n°2. Cela fonctionne super bien, cependant, c'est un peu embêtant de rajouter cette fonctionnalité en cours de développement car il faut modifier (ajouter) chaque appel AJAX, la mise à jour du timestamp de la dernière activité de l'utilisateur...

    Merci batataw pour tes conseils... même si je n'ai toujours pas compris le dernier point.

Discussions similaires

  1. Session expired & ajax request
    Par redah75 dans le forum jQuery
    Réponses: 6
    Dernier message: 09/01/2014, 12h00
  2. [2.x] Call AJAX et Session expirée
    Par pc.bertineau dans le forum Symfony
    Réponses: 2
    Dernier message: 18/01/2012, 00h30
  3. [ACL] Requete Ajax et expiration de session
    Par Bourbaky dans le forum Zend Framework
    Réponses: 1
    Dernier message: 16/05/2011, 21h38
  4. Session expirée et redirection
    Par Shivaneth dans le forum Struts 1
    Réponses: 4
    Dernier message: 23/07/2007, 16h08
  5. [Tomcat] session expirée redirection vers une page
    Par Casp dans le forum Tomcat et TomEE
    Réponses: 3
    Dernier message: 19/01/2006, 11h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo