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 :

Authentification par SESSION ou par OAUTH2 [2.x]


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de alejandro
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2004
    Messages
    167
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2004
    Messages : 167
    Par défaut Authentification par SESSION ou par OAUTH2
    Bonjour,

    J'ai une API Restfull qui fonctionne correctement avec le FOSRestBundle.

    Au départ j'ai implémenté un système d'authentification par session via le FOSUserBundle et ça fonctionne très bien avec un formulaire de connexion classique.

    Mon API me retourne des résultats pour une même URI au format html, json ou xml en fonction de ce que demande le client.

    Pour permettre aux applications de consommer mon API j'ai ensuite implémenté le FOSOAuthServerBundle et ça marche très bien également.

    SAUF que depuis bien sûr mon authentification par formulaire ne fonctionne plus et c'est l'authentification par OAuth qui marche.

    Je souhaiterais simplement pouvoir utiliser l'authentification par formulaire (session) lorsque le client demande une page web et une authentification OAuth lorsque le client demande un autre format de réponse.

    Est-ce possible sans passer par des URI différentes pour une même ressource ?
    Et si oui comment faire ?

    Merci d'avance pour votre temps.

  2. #2
    Membre confirmé Avatar de alejandro
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2004
    Messages
    167
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2004
    Messages : 167
    Par défaut
    Bon je met à jour ce post au cas où quelqu'un rencontrerais le même problème.

    En fait j'ai été obligé de séparer mon api de sécurisée par OAuth de mon interface web sécurisée par Sessions.

    Pour ce faire j'ai dupliqué mes routes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    # src/AppRestBundle/Resources/config/routing.yml
     
    # http://stackoverflow.com/questions/20377878/symfony-security-auth-with-session-or-oauth
    app_rest:
        resource: "@AppBundle/Controller/"
        type:     annotation
        prefix:   /api
        name_prefix: api_
     
    # http://stackoverflow.com/questions/20377878/symfony-security-auth-with-session-or-oauth
    app_rest_html:
        resource: "@AppBundle/Controller/"
        type:     annotation
        prefix:   /
        name_prefix: html_
    Et mis en place un firewall sur-mesure :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    # app/config/security.yml
        firewalls:
            api:
                pattern: ^/api
                fos_oauth: true
                stateless: true
                anonymous: false
     
            # http://stackoverflow.com/questions/20377878/symfony-security-auth-with-session-or-oauth
            main:
                pattern: ^/
                form_login:
                    provider: fos_userbundle
                    csrf_token_generator: security.csrf.token_manager
                logout: true
                anonymous: true
    En espérant que cela servira à quelqu'un.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Débutant] De la gestion d'authentification par session
    Par jgrmstr dans le forum C#
    Réponses: 7
    Dernier message: 03/06/2012, 13h34
  2. Allocation mémoire par session
    Par joziel dans le forum Oracle
    Réponses: 7
    Dernier message: 09/07/2007, 16h53
  3. Identification par session : erreur
    Par arnaudperfect dans le forum Langage
    Réponses: 2
    Dernier message: 16/03/2007, 11h40
  4. [Cookies] Variables sessions protection par mot de passe
    Par luciedoudou dans le forum Langage
    Réponses: 17
    Dernier message: 24/01/2007, 11h20
  5. 1 bouton 1 seul click par session
    Par unmulot dans le forum Langage
    Réponses: 5
    Dernier message: 06/07/2006, 11h50

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