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 :

sfGuardAuth signout ne vide pas le cookie


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    17
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 17
    Par défaut sfGuardAuth signout ne vide pas le cookie
    Bonjour,

    J'ai un souci avec la méthode "signout" du plugin sfDoctrineGuardPlugin.

    Lorsque je coche la case "mémoriser mon mot de passe" lors de l'authentification, je suis bien connecté et le cookie est bien créé.

    Si je ferme mon navigateur et que je retourne sur mon site je suis bien reconnecté automatiquement. Par contre si je clic sur mon lien de déconnexion, le cookie n'est pas supprimé, je suis donc en permanence connecté si je ne supprime le cookie à la main.

    Je vois bien que le logout passe par la méthode signout, mais la partie :
    sfContext::getInstance()->getResponse()->setCookie($remember_cookie, '', time() - $expiration_age);
    ne fonctionne pas. Je n'ai pourtant pas d'erreur.

    NB : sans le cookie je parviens bien à me déconnecter

    Merci de votre aide

  2. #2
    Expert confirmé
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Par défaut
    Sauf erreur de ma part, le fais de cocher "remeber me" permet de se reconnecter dés que l'on arrive sur le site. Même si l'on a fait un logout avant.

    Ce que tu décris est le fonctionnement normal de l'application.

    Essaye en décochant la case lors du login, cela devrait chanter le comportement dans le sens que tu souhaites.

  3. #3
    Membre chevronné
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    396
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 396
    Par défaut
    Le comportement du "remember me" n'est-il pas plutôt de pouvoir se reconnecter automatiquement lorsque la session a expiré ?
    (et non lorsque l'utilisateur s'est volontairement déconnecté)

    Si je dis une grosse bêtise, merci de ne pas frapper

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    17
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 17
    Par défaut
    bonjour,

    le problème c'est que si je me connecte en cochant la case remember me, je ne peux plus me déconnecter sans supprimer le cookie à la main. En cliquant sur logout, je retourne sur ma page d'accueil en étant connecté et non la page de login. Pourtant dans routing.yml:
    sf_guard_signout:
    url: /logout
    param: { module: sfGuardAuth, action: signout }
    Ainsi que le lien :
    <?php echo link_to(__('Déconnexion'), '@sf_guard_signout') ?>
    @mimi68, quand je regarde le code du plugin je pense pas que ce soit le fonctionnement:
    /**
    * Signs out the user.
    *
    */
    public function signOut()
    {
    $this->getAttributeHolder()->removeNamespace('sfGuardSecurityUser');
    $this->user = null;
    $this->clearCredentials();
    $this->setAuthenticated(false);
    $expiration_age = sfConfig::get('app_sf_guard_plugin_remember_key_expiration_age', 15 * 24 * 3600);
    $remember_cookie = sfConfig::get('app_sf_guard_plugin_remember_cookie_name', 'sfRemember');
    sfContext::getInstance()->getResponse()->setCookie($remember_cookie, '', time() - $expiration_age);
    }
    A priori, quand je me déconnecte, il supprime automatiquement le cookie, enfin normalement

    Merci de votre aide

  5. #5
    Expert confirmé
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Par défaut
    C'est dans l'idée du remember me.

    Tu quittes l'application par une déconnexion ou pas. Lors du lancement de l'application (une fois que le cookie de session est mort, ou parce qu'il est tué par un logout), le filtre remember me va, automatiquement, recréer l'authentification, sans passer par l'action de login. Et le fait de passer par le login, va chuinter le form pour ce loguer directement.

    Si tu veux que tes utilisateurs se reconnectent à chaque connexion, il faut supprimer le système remeber me.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    17
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 17
    Par défaut
    Salut mimi68,

    Je suis bien d'accord avec toi. le problème est que si je fait un logout le cookie n'est pas modifié. Il reste donc actif et sans supprimer le cookie en allant dans les options de firefox ou autre navigateur, je dois attendre que le cookie expire.

    en gros le logout n'arrive pas à effectuer l'action suivante:
    sfContext::getInstance()->getResponse()->setCookie($remember_cookie, '', time() - $expiration_age);
    Je ne comprends pas pourquoi ça fonctionne pas, car je n'ai aucune erreur d'indiquée

Discussions similaires

  1. [1.x] sfGuardAuth signout ne vide pas la barre d'adresse
    Par damiensan dans le forum Symfony
    Réponses: 5
    Dernier message: 17/05/2010, 19h12
  2. Champ BLOB qui ne se vide pas.
    Par pifou02 dans le forum Firebird
    Réponses: 4
    Dernier message: 05/10/2007, 10h02
  3. [Cluster Tomcat] Pas de cookie de session sous IE
    Par goeland444 dans le forum Tomcat et TomEE
    Réponses: 1
    Dernier message: 24/04/2007, 09h58
  4. [Cookies] Pas de cookie malgré session_start() sous IE
    Par webrider dans le forum Langage
    Réponses: 5
    Dernier message: 01/04/2007, 10h16
  5. [Cookies] pas de cookie
    Par Longrais dans le forum Langage
    Réponses: 2
    Dernier message: 21/11/2005, 14h37

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