Bonjour,
Il est vrai que je n'ais jamais mis en place un systeme de ce genre mais je trouve qu'il important pour toi de comprendre d'abord comment SF2 gere les Utilisateur ceci dit si tu desire passer une information a symfony2 pour qu'il gere comme nom de connexion, alors cela doit etre configurer dans le fichier security.yml d'abord sans oublier les methode d'authentifications (formulaire), et le fournisseur (base de donnee, Issu d'un service,....) donc selon moi tu dois reflechire d'abord chez symfony2 ici et gerer la transaction bien dans un premier temps je veux dire que l'utilisateur s'authentifie normalement est se deconnect normalement.
deuxiement maintenant, je trouve que symfony2 est reellement assez avancer pour pouvoir tout offrir sa j'ose le dire ! ainsi je t'invite a faire un petit tour dans sa documentation sur la partie "evenement" car le gestionnaire d'evenement te permettra par exemple de savoir si l'utilisateur s'est connecte avec success ou pas car tous le proccessus d'authentification (depuis le formulaire de connexion a la reussite/echec d'authentification) sont couvert un ensemble d'evenements predefinit par symfony2 il suffit donc de choisir a quel instant tu veux faire appele a ton API (web service) et selon ton besoin d'ecouter avant ou apres un evenement par exemple je te proposerai d'ecouter l'evenement: "security.authentication.success" qui est déclenché lorsqu'un utilisateur s'identifie avec succès, quelque soit le moyen utilisé (formulaire de connexion, cookies remember_me). Son objectif est de permettre à un listener d'archiver une trace de l'identification, par exemple.
Ainsi dans ton listener tu fera la transaction avec ton API (webservice) en lui passant les attribut de ton utilisateur meme depuis un controller comme par exemple:
$email = $this->get('security.context')->getUser()->getEmail();
et suivant la reponse de ton API (web service), tu feras tout ce que tu veux ! deconnecter l'utilisateur (en redirigeant l'execution vers la route de deconnexion ...)
ou faire autre chose (en redirigeant l'execution vers une autre action d'un quelconque controller...) j'espere que vous m'avez compris sinon je suis a l'ecoute
Partager