Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 17-09-2013 16:02:52

WikeC
Membre
Date d'inscription: 17-09-2013
Messages: 18

Autentification avec utilisation de la session

Bonjour,

Tout d'abord je suis nouveau membre et heureux de faire partie de cette communauté.
Je débute depuis quelques mois sur ce fameux framework zend 2.

Après m'être exercé sur le "getting started" du site officiel, je me lance petit à petit dans le développement de  mon propre projet.
Et là je commence à coincer sur le fameux module d'authentification (Zend\Auth)... j'ai parcouru ce forum, demandé à mon ami "google" mais je n'ai pas trouvé mon bonheur.

Voici ma question:

Comment utiliser ma session sur d'autres pages après avoir fait le processus d'authentification dans mon "controller" ?

Je m'explique, pour accéder à l'interface administration de mon site, je dois m'identifier au moyen d'un formulaire (username, password) .
Depuis mon controller, je vérifie si le formulaire est validé, récupère les champs puis vérifie s'ils sont valides. Si tout est ok, je passe au processus d'authentification. Une fois que l'authentification est correcte, je mets en session les infos de l'utilisateur connecté.
Le problème c'est comment je fais pour utiliser ensuite cette session sur d'autres pages ? par exemple afficher le nom et prénom de l'utilisateur dans le footer ?

Merci pour vos aides précieuses.

Hors ligne

 

#2 17-09-2013 16:47:02

Seryus
Membre
Date d'inscription: 17-02-2012
Messages: 128

Re: Autentification avec utilisation de la session

Salut !
Tu devrais trouver ton bonheur ici wink

Hors ligne

 

#3 17-09-2013 22:57:38

WikeC
Membre
Date d'inscription: 17-09-2013
Messages: 18

Re: Autentification avec utilisation de la session

Merci Seryus pour ton aide.

Malheureusement je n'ai pas compris et je trouve que la doc de ZF2 est très pauvre...
On a pas d'exemples concrets et je ne trouve aucune autre réponse. J'ai tellement regarder partout, tellement vu d'exemples que je suis maintenant complètement perdu...

A croire que je suis le seul à me soucier de cette session avec Zend\Auth... :(

Pouvez-vous me dire si mon exemple de code est bon ? ensuite m'expliquer à quoi sert new SessionStorage('auth_infos') et enfin que faire avec $identity ? puis-je le récupérer dans un autre contrôleur ?


           

Code:

[lang=php]if($form->isValid()){
                $infos = $user->exchangeArray($form->getData());
                
                /** mise en tableau des données **/
                $infos = $form->getData();
                
                $username = $infos['username'];
                $password = $infos['password'];               
      
                // processus d'authentification avec mise en session

                $auth = new AuthenticationService();
                $auth->setStorage(new SessionStorage('auth_infos'));
                
                    $this->getAuth()->setIdentity($username)
                                    ->setCredential($password);  

                    $select = $this->getAuth()->getDbSelect();        
                    $select->where('active = "true"');        

                    $result = $auth->authenticate($this->getAuth());
                
                
                                  
                if(!$result->isValid()){
                     foreach($result->getMessages() as $message)
                     {
                         echo $message;
                     }
                }
                else{
                    
                    $identity = $result->getIdentity();

                }
            }

Merci pour vos aides.

Hors ligne

 

#4 18-09-2013 00:15:36

Seryus
Membre
Date d'inscription: 17-02-2012
Messages: 128

Re: Autentification avec utilisation de la session

Ton code me fait dire que tu n'as même pas lu le getting started. Tu devrais revoir le tutoriel (peut être aussi le PHP) et regarder ce que font les fonctions que tu utilises (le code est expliqué ligne par ligne dans le getting started).

La doc de ZF2 sur l'authentification est loin d'être pauvre et c'est très bien expliqué.
Le nom de l'objet que tu instancies suffit à t'indiquer ce que c'est (et donc à quoi il sert).
Pour ta dernière question, je t'ai déjà donné la réponse dans mon premier poste.

Hors ligne

 

#5 18-09-2013 10:34:10

WikeC
Membre
Date d'inscription: 17-09-2013
Messages: 18

Re: Autentification avec utilisation de la session

Si j'ai "même" lu le "getting started" et aussi le livre Zend framework 2 (industrialisez vos développements PHP).
Je posais juste des questions (car je m'en pose pas mal comme toi Seryus à tes débuts...) car je suis dans le doute.
Mais bon c'est pas grave, je trouverai ailleurs.

Merci quand même pour ton aide.

Hors ligne

 

#6 18-09-2013 11:53:13

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

Re: Autentification avec utilisation de la session

Salut WikeC,

pour avoir faire une relecture du livre que tu as lu, tu devrais pouvoir t'en sortir avec même si tout n'est pas conforme aux conventions il répond déjà à pas mal de questions.

Là ton code montre effectivement que tu n'as pas bien compris comment fonctionne le ZF2 et principalement le service manager ainsi que les plugins. Tout simplement parce que tu n'utilises pas le service manager pour récupérer ton service d'authentification et il est évident que la variable $identity ne sera pas accessible ailleurs de ta fonction c'est la base du langage objet. Par contre il existe un plugin qui, si tu utilises tout correctement, te retourne l'utilisateur qui est stocké en session. Tu n'as quasiment rien à faire pour que ça fonctionne à part faire les tests sur l'authentification comme tu le fais. C'est tout.

Hors ligne

 

#7 18-09-2013 16:58:01

Seryus
Membre
Date d'inscription: 17-02-2012
Messages: 128

Re: Autentification avec utilisation de la session

Moi ce sont surtout les 2ème et 3ème ligne qui me choquent, il ne peut pas affirmer qu'il a lu (ou même essayé de comprendre) et faire ça.
Si je me place du point de vue de quelqu'un qui connait le PHP (sans même avoir touché à Zend), tu récupères quelque chose dans ta variable $infos, puis tu écrases ce quelque chose sans jamais l'avoir utilisé.

Pour le plugin dont parle Orkin, tu peux voir comment le mettre en place et l'utiliser dans le lien que je t'ai passé plus haut.

Hors ligne

 

#8 19-09-2013 00:08:00

WikeC
Membre
Date d'inscription: 17-09-2013
Messages: 18

Re: Autentification avec utilisation de la session

Merci Orkin pour ton éclaircissement du service manager. Tu m'as bien aidé ! Maintenant j'ai bien compris et mon souci de session est résolu. Effectivement j'avais mal saisi le fonctionnement de ZF2 mais ça commence à rentrer petit à petit (donnez moi un peu de temps c'est tout).

Quand à Seryus, j'ai rectifié mon erreur de la 2ème ligne (donc supprimé), en effet c'en était une belle c'est juste que j'avais fait plusieurs manipulations auparavant pour tester différentes choses et que j'avais "oublié" de tout remettre en ordre (j'étais surtout focalisé sur l'authentification... oui je sais on va me dire que c'est impardonnable, que c'est pas normal de faire ça, etc.) Bon bah c'est comme ça ! je le referais plus.
Me le signaler aurait plus approprié que de répondre assez froidement.
En espérant de ne pas t'avoir trop choqué.

Merci encore pour vos aides.

Hors ligne

 

#9 19-09-2013 09:01:26

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

Re: Autentification avec utilisation de la session

Ca arrive les fautes d'étourderie smile. S'il fallait corriger toutes les erreurs de conceptions des codes du forum (le miens compris hein) on aurait encore résolu aucun problème wink.

WikeC faut vraiment bien comprendre le fonctionnement du service manager, on devrait dire service locator d'ailleurs maintenant. Il est plus complexe qu'il n'y parait car il y a le service locator en lui même qui lui, une fois compris est assez facile à comprendre par contre il faut savoir qu'il existe des services locator spécialisés comme le formElementManager, le pluginManager etc ...

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