Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 22-10-2015 11:04:37

RomainG
Membre
Date d'inscription: 10-06-2015
Messages: 63

Authentification et Doctrine 2

Bonjour à tous,

une fois de plus, un petit soucis avec Doctrine 2 mais sur la partie authentification...
J'ai suivi la doc du module Doctrine pour l'authentification (https://github.com/doctrine/DoctrineMod … ication.md) mais je suis bloqué au moment d'écrire mon entity dans en session.

Voici comment j'ai procédé. Dans mon Module.php, je renseigne cette factory :

Code:

[lang=php]
'AuthService' => function($sm){
    return $sm->get('doctrine.authenticationservice.orm_default');
},

Au niveau de mon fichier module.config.php, j'ai mis :

Code:

[lang=php]
        'doctrine' => [
                'authentication' => [
                        'orm_default' => [
                                'object_manager' => 'Doctrine\ORM\EntityManager',
                                'identity_class' => 'User\Entity\User',
                                'identity_property' => 'userid',
                                'credential_property' => 'password',
                                'credential_callable' => function (User $user, $password) {
                                    return ma_fonction_pour_check_le_password;
                                }
                        ]
                ]
        ],

Ensuite, dans mon controller, je récupère le service Auth :

Code:

[lang=php]
// $value contient les informations issues du formulaire d'autentification
        $authService = $this->authService;
        $adapter = $authService->getAdapter();
        $adapter->setIdentity($value->userid);
        $adapter->setCredential($value->password_);
        $result = $authService->authenticate();
        if ($result->isValid()){
            $user = $result->getIdentity();
            $authService->getStorage()->write($user);
            return true;
        } else {
            $this->flashMessenger()->addMessage($translator->translate('error connection'));
            $this->redirect()->toRoute('auth', array('action' => 'index'));
        }
        return false;

Le problème se situe, je pense, au niveau de la ligne $authService->getStorage()->write($user).
Quand je débug $user, je récupère bien l'entité mais il semblerait que je ne puisse pas écrire les infos relatives à l'utilisateur en session. Les infos de connection (identifiants et mot de passe) sont bon car je rentre bien dans la condition $result->isValid().

De plus, quand je débug $this->identity() dans ma vue, elle me retourne null...

J'ai donc pour résultat que je ne suis pas loggé au niveau de mon application.

Une idée ?

Merci d'avance,
Romain

Hors ligne

 

#2 22-10-2015 14:58:23

RomainG
Membre
Date d'inscription: 10-06-2015
Messages: 63

Re: Authentification et Doctrine 2

OK.
je viens plus ou moins de comprendre d'où vient le problème.
En fait, j'initialise une session au bootstrap du module Auth. Après quelques recherches, j'ai remarqué que lorsqu'on utilise Doctrine, il utilise le storage par défaut de zend (Zend\Authentication\Storage\Session) avec le namespace de la session à Zend_Auth.
Or, de mon côté, je créé un session avec un namespace différent...

Y a-t-il possibilité que les deux sessions créés entrent en conflit ?

Comment pourrais-je indiqué à Doctrine utiliser la session que je créé pour y stocker les identifiants ?

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