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

Symfony PHP Discussion :

Modifier le comportement par défaut lors d'un logout [2.x]


Sujet :

Symfony PHP

  1. #1
    Candidat au Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Février 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Février 2014
    Messages : 5
    Points : 4
    Points
    4
    Par défaut Modifier le comportement par défaut lors d'un logout
    Bonjour.

    Actuellement, je développe un site B2C avec Symfony 2.6. Et je rencontre un comportement par défaut lors du logout que j'aimerais modifier.

    Situation:
    L'utilisateur arrive sur le site. Il peut ajouter des articles dans le panier sans se connecter. J'utilise une variable session pour la sauvegarde de mon panier. Lors de la connexion, ma variable session 'panier' est toujours présente et donc aucun souci de ce côté là. Par contre, lors d'un logout, Symfony détruit la session automatiquement. Et du coup, ma variable en session pour gérer le panier est détruite.

    Question:
    Est-il possible de modifier ce comportement? Si vous avez des pistes de travail afin de savoir dans quelle direction, je dois m'orienter.

    Merci.

  2. #2
    Membre averti
    Avatar de phpiste
    Homme Profil pro
    Développeur Senior
    Inscrit en
    Septembre 2006
    Messages
    251
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur Senior
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2006
    Messages : 251
    Points : 445
    Points
    445
    Billets dans le blog
    7
    Par défaut
    Bonjour,

    Tu peux passer par les listeners ou bien dans ton firewall tu peux surcharger le service "success_handler" du logout:

    Fichier /app/config/security.yml

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
         .....
         logout:
                    path:   /logout
                    target: /
                    invalidate_session: false
                    ......
                    success_handler: some.service.id
    "some.service.id" est l'ID du service qui contient ta logique

    Ref:
    http://symfony.com/doc/current/refer.../security.html

    Voir aussi:
    http://stackoverflow.com/questions/1...ymfony2-logout

    Pour ton cas l'idée est de récupérer le tableau du panier dans une variable, faire le traitement par défaut du logout et renseigner de nouveau la session

    Je suis Développeur Senior ouvert aux opportunités
    Mon blog

  3. #3
    Candidat au Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Février 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Février 2014
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    Merci à toi.

    Dans mon fichier security.yml au niveau du logout, j'ai juste ajouté :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    invalidate_session: false
    Dorénavant, il n'efface plus ma session et je peux donc garder le contenu de mon panier même en cas de déconnexion. Exactement le comportement désiré.

    Je n'ai pas implémenté le service. Je suppose que ce dernier ne sert vraiment que si on veut changer la logique lors du succès du logout ?

  4. #4
    Membre averti
    Avatar de phpiste
    Homme Profil pro
    Développeur Senior
    Inscrit en
    Septembre 2006
    Messages
    251
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur Senior
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2006
    Messages : 251
    Points : 445
    Points
    445
    Billets dans le blog
    7
    Par défaut
    Citation Envoyé par DevLudo Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    invalidate_session: false
    oui bien vue apparament cette option est la plus adapté à ton besoin
    Je suis Développeur Senior ouvert aux opportunités
    Mon blog

  5. #5
    Candidat au Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Février 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Février 2014
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    Encore merci et bonne journée.

    Je passe le sujet en résolu.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 13/04/2011, 11h40
  2. Réponses: 0
    Dernier message: 22/07/2010, 01h09
  3. Réponses: 0
    Dernier message: 02/11/2007, 21h34
  4. Réponses: 4
    Dernier message: 04/10/2005, 00h07

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