Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 30-04-2013 14:52:49

irumi
Membre
Date d'inscription: 29-04-2011
Messages: 47

[résolut]Problème action logout

Bonjour a tous.
Je vient de me rendre compte que mon action logout ne fonctionne pas. Est-ce quelqu'un arrive à supprimer les sessions de zend 2 et les données stocké dans zend\Auth?

Voici mon action de déconnexion :

Code:

[lang=php]
 function logoutAction() {
        $auth = new AuthenticationService();
        $auth->clearIdentity();
        \Zend\Session\Container::getDefaultManager()->destroy(); 
        return $this->plugin('redirect')->toUrl('/admin');
    }

Dernière modification par irumi (30-04-2013 17:56:30)

Hors ligne

 

#2 30-04-2013 16:42:46

Orkin
Administrateur
Lieu: Paris
Date d'inscription: 09-12-2011
Messages: 1261

Re: [résolut]Problème action logout

Salut, normalement un clearIdentity() fonctionne donc c'est assez bizarre. Tu peux montrer ton code de connexion pour voir ?

Hors ligne

 

#3 30-04-2013 17:49:25

irumi
Membre
Date d'inscription: 29-04-2011
Messages: 47

Re: [résolut]Problème action logout

Mon code de connexion

Code:

[lang=php]
public function loginAction() {
        $form = new LoginForm();

        $request = $this->getRequest();
        if ($request->isPost()) {
            $formData = $request->getPost();//on récupère les données postées
            $form->setData($formData);//on remet les donnée dans les éléments de formulaire
            if ($form->isValid()) {
                //on récupère l'adaptateur de base de donnée
                $sm = $this->getServiceLocator();
                $dbAdapter = $sm->get('db-adapter');
                //on met en place l'autentification via la base de données (adaptateur, tableUser, colonneLogin, colonnePasse, TraitementPasse)
                $authAdapter = new AuthAdapter($dbAdapter,'users','login','passe');
                $bcrypt = new \Zend\Crypt\Password\Bcrypt();
                $bcrypt->setSalt('.....');
                
                $authAdapter->setIdentity($formData['login'])->setCredential($bcrypt->create($formData['passe']));//on met les donnée d'identification
                 
                $auth = new AuthenticationService();//on utilise le service d'autentification pour garder le résultat en session
                $result = $auth->authenticate($authAdapter);
                 
                 
                if($result->isValid()) {//si c'est valide
                    $stockage = $auth->getStorage();//on récupère l'espace de stockage
                    $stockage->write($authAdapter->getResultRowObject(array( 'login', 'role')));//on inscrit l'identiter dans un objet ayant pour atribue les collonne passé en paramètre (ici: login et role)
                    return $this->plugin('redirect')->toUrl('/admin');
                }else {
                    $form->get('passe')->setMessages(array('Identifiant ou/et mot de passe incorrecte.'));
                }
            }
        }
        return array('form' => $form);
    }

Hors ligne

 

#4 30-04-2013 17:56:15

irumi
Membre
Date d'inscription: 29-04-2011
Messages: 47

Re: [résolut]Problème action logout

Ok, je n'ai rien dit ... Je suis un boulet. En faite je testait la déconnexion d'un utilisateur autre que admin et en faite, il n'avait pas le droit d’accéder à la page logout.

J'ai un peut honte.

Merci quand même

Hors ligne

 

#5 02-05-2013 09:38:32

Orkin
Administrateur
Lieu: Paris
Date d'inscription: 09-12-2011
Messages: 1261

Re: [résolut]Problème action logout

Ok super par contre je tiens quand même à te prévenir que le contrôleur n'est pas là pour faire les actions que tu fais : vérifier que l'authentification est correcte. C'est un service qui doit s'en charger ça fait plus propre smile

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages