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 :

web service et connexion SF2


Sujet :

Symfony PHP

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2015
    Messages : 5
    Par défaut web service et connexion SF2
    Bonjour à tous,

    Je suis confronté à un problème sur SF2, et je n'ai pas vraiment d'idée pour le résoudre.

    Je veux créer un système d'authentification symfony2 avec des web services, et j'aimerai que mon utilisateur soit connecté à SF2 dés qu'il à validé le formulaire de connexion, pour vous expliquer un peu plus voici le déroulement :

    L'utilisateur va arriver sur une page de login (/login) avec un émail et un mot de passe (ma route + action controller, mon formulaire et mon template fonctionnent déjà). Après avoir validé le formulaire, les infos sont envoyés en paramètres à un web services et en réponse j'obtiens soit un message d'erreur que je dois afficher, soit un token de connexion qui va me permettre de relog l'utilisateur directement quand il va se connecté à l'application dans le futur. Si le formulaire retourne une bonne réponse du web service alors l'utilisateur doit être connecté à SF2 dans la toolbar et un cookie doit être créer pour le relog automatiquement quand il retourne sur le site.

    De plus si l'utilisateur n'est pas connecté il n'a pas accès aux autres pages, sauf /login, A contrario, si il est connecté il ne pourra pas aller sur la page /login. Mais tout ceci est géré dans le firewall SF2...

    j'ai regardé pas mal de tuto sur la doc de SF2 dont la création d'un Provider Perso, ou encore ceci : Authenticate User API Key , mais je ne comprend pas vraiment comment cela fonctionne... Tout le système de connexion (web service, réception de la réponse, création du cookie) doit être géré dans l'action de mon controller /login ou dans mon Provider ?

    Quelqu'un peut il m'aider, au moins à comprendre le déroulement ? La doc n'est pas vraiment complète surtout au niveau du fichier security.yml je trouve.

    Merci

  2. #2
    Membre extrêmement actif
    Avatar de dukoid
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2012
    Messages
    2 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2 100
    Par défaut
    j'avais regardé une fois, ce que j'ai compris c'est que tu configure le provider cad le fournisseur d'user en utilisation: base de donnée, fichier ou même web service.
    pour cela il fallait configurer le config.yml pour modifier le provider.
    il me semble qu'il faut regarder du coté des API REST et symfony ..... pour en savoir plus

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2015
    Messages : 5
    Par défaut
    j'ai suivis ce tuto du cookbook pour le moment sans vraiment savoir à quoi sert chaque méthode : http://symfony.com/fr/doc/current/co..._provider.html

    j'ai déjà implémenté un service avec toutes mes fonctions CURL pour lancer mes web services, mais il faut encore que je sache ou faire cette exécution du web service. J'ai modifié le security.yml pour mettre mon Provider Custom comme dans le tuto mais je suis bloqué ensuite car mon formulaire /login exécute mon action login et pas mon Provider, Bref je comprends rien ^^

    Merci en tout cas

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2015
    Messages : 5
    Par défaut
    Personne n'a d'idée pour la démarche à suivre ? je suis en train de tester ceci : lien et je pense que ça peut m'emmener à quelque chose. j'ai vu sur le forum que plusieurs personnes avaient essayé de le faire aussi ici. Mais la aussi je tombe sur beaucoup d'erreurs, car la version de SF2 utilisé n'est pas la même que la mienne...

  5. #5
    Membre Expert
    Avatar de pmithrandir
    Homme Profil pro
    Responsable d'équipe développement
    Inscrit en
    Mai 2004
    Messages
    2 419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Responsable d'équipe développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 419
    Par défaut
    J'ai un peu de mal a comprendre ce que tu veux faire.

    tu veux que quand l'utilisateur rentre son login / mot de passe tu vérifie sur un webservice externe la validité de son compte ?

    Ou tu veux lui renvoyer un token qu'il redonnera pour chaque utilisation future de tes webservices ?

    Dans la seconde hypothèse, les webservices sont sencé etre stateless, donc tu n'es pas sencé faire ca vraiment...

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2015
    Messages : 5
    Par défaut
    Bonjour,

    En fait dans mon action login, j'envoi un formulaire de login à ma vue "/login", à l’intérieur mon utilisateur rentrera son email et son mot de passe. Après avoir cliqué sur le bouton connexion, un web service sera lancé avec en paramètres l'email et le mot de passe rentrer dans le formulaire.

    En réponse, mon web service va me renvoyer un token de connexion que je vais devoir stocker en cookie pour accéder au web service suivant (accès aux infos de mon compte etc..), de plus l'utilisateur va devoir être connecté à SF2 dans la toolbar de dev. Peut être mettre l’émail de mon utilisateur et le token de la réponse du web service.

    J'espère que tu comprends mieux :/

    Merci

  7. #7
    Membre confirmé
    Inscrit en
    Mai 2010
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 52
    Par défaut
    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:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $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

  8. #8
    Futur Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2015
    Messages : 5
    Par défaut
    DELETE

Discussions similaires

  1. android et web service local connexion
    Par tlili_info dans le forum API standards et tierces
    Réponses: 1
    Dernier message: 17/03/2011, 15h54
  2. Web service et connexion BD
    Par vim86 dans le forum W4 Express
    Réponses: 2
    Dernier message: 27/08/2010, 15h51
  3. Connexion InfoPath Web service
    Par fanfan49 dans le forum Services Web
    Réponses: 1
    Dernier message: 06/06/2007, 23h13
  4. Connexion InfoPath Web service
    Par fanfan49 dans le forum SharePoint
    Réponses: 1
    Dernier message: 06/06/2007, 23h13
  5. connexion a un web service
    Par Tigrou_Giyome dans le forum Services Web
    Réponses: 7
    Dernier message: 15/03/2007, 17h46

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