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 :

[SF3 - FOSREST - FOSUSER - FOSOAUT] probleme access API


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Août 2016
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2016
    Messages : 7
    Par défaut [SF3 - FOSREST - FOSUSER - FOSOAUT] probleme access API
    Bonjour,

    Je tourne en rond depuis plusieurs heures. Pour résumer simplement mon problème :

    Je fais une première requête http post qui récupère bien le token

    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    [root@dev-rcn httpdocs]# http POST url/oauth/v2/token \
    >     grant_type=password \
    >     client_id=3_3bcbxd9e24g0gk4swg0kwgcwg4o8k8g4g888kwc44gcc0gwwk4 \
    >     client_secret=4ok2x70rlfokc8g0wws8c8kwcokw80k44sg48goc0ok4w0so0k \
    >     username=admin \
    >     password=admin
    HTTP/1.1 200 OK
    Cache-Control: no-store, private
    Connection: Keep-Alive
    Content-Type: application/json
    Date: Wed, 10 Aug 2016 08:52:00 GMT
    Keep-Alive: timeout=5, max=100
    Pragma: no-cache
    Server: Apache
    Transfer-Encoding: chunked
    X-Debug-Token: 50dd10
    X-Debug-Token-Link: 
    X-Powered-By: PHP/5.6.19
     
    {
        "access_token": "N2M3M2M1OGI2OWEwN2U5NDM2ZWFhMGFiMjhmMWZhY2RiOGMzZjFhYjhlMzEyMDZkMjI3M2M3N2JkODcxNDk1ZQ",
        "expires_in": 3600,
        "refresh_token": "MzgwZTc3NmUzZGQzY2VhZTc3NWI2NzQ0YTU4ZjViMGFjZjBiYzI3MGU1YjczNjA0YjNiYThlMmZiMDhjODA0Mg",
        "scope": null,
        "token_type": "bearer"
    }
    Et ensuite impossible de récupérer les données avec ce token

    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
    17
    18
    19
    20
    [root@vdev-rcn httpdocs]# http url/api/datas \ "Authorizat
    ion:Bearer N2M3M2M1OGI2OWEwN2U5NDM2ZWFhMGFiMjhmMWZhY2RiOGMzZjFhYjhlMzEyMDZkMjI3M2M3N2JkODcxNDk1ZQ"
    HTTP/1.1 401 Unauthorized
    Cache-Control: no-store, private
    Connection: Keep-Alive
    Content-Type: application/json
    Date: Wed, 10 Aug 2016 08:52:27 GMT
    Keep-Alive: timeout=5, max=100
    Pragma: no-cache
    Server: Apache
    Transfer-Encoding: chunked
    WWW-Authenticate: Bearer realm="Service", error="access_denied", error_description="OAuth2 authentication required"
    X-Debug-Token: 3ff60f
    X-Debug-Token-Link: 
    X-Powered-By: PHP/5.6.19
     
    {
        "error": "access_denied",
        "error_description": "OAuth2 authentication required"
    }
    Et quand j’autorise les connexions anonymes ça fonctionne bien

    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    [root@dev-rcn httpdocs]# http GET url/api/datas     "Authorizatio
    n:Bearer YTY1N2YxMDc0YzdiZmY0YjBlZjM0YWZiODY1NzhhMTNmY2RiNTU3Zjc3NjVlNDdiMDgwYjYyMzg0MjFiMmIxOQ"
    HTTP/1.1 200 OK
    Cache-Control: no-cache
    Connection: Keep-Alive
    Content-Type: application/json
    Date: Wed, 10 Aug 2016 08:27:06 GMT
    Keep-Alive: timeout=5, max=100
    Server: Apache
    Transfer-Encoding: chunked
    X-Debug-Token: 9c9475
    X-Debug-Token-Link: 
    X-Powered-By: PHP/5.6.19
     
    {
        "datas": [
            {
                "data01": "toto",
                "data02": "titi",
                "data03": "tutu",
                "id": 1
            },
            {
                "data01": "popo",
                "data02": "pipi",
                "data03": "pupu",
                "id": 2
            }
        ]
    }
    voici ma conf

    security.yml

    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
    17
    18
    19
    20
    21
    22
    # To get started with security, check out the documentation:
    security:
     
        providers:
            in_memory:
                memory: ~
     
        encoders:
            FOS\UserBundle\Model\UserInterface: sha512
     
        providers:
            fos_userbundle:
                id: fos_user.user_provider.username        # fos_user.user_provider.username_email does not seem to work (OAuth-spec related ("username + password") ?)
        firewalls:
            oauth_token:                                   # Everyone can access the access token URL.
                pattern: ^/oauth/v2/token
                security: false
            api:
                pattern: ^/api                             # All URLs are protected
                fos_oauth: true                            # OAuth2 protected resource
                stateless: true                            # Do no set session cookies
                anonymous: false                           # Anonymous access is not allowed
    routing.yml

    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
    17
    18
    api_tls:
        resource: "@ApiTlsBundle/Controller/"
        type:     annotation
        prefix:   /
     
    app:
        type:     rest
        resource: "@ApiTlsBundle/Resources/config/routing_api.yml"
     
    fos_user:
        resource: "@FOSUserBundle/Resources/config/routing/all.xml"
     
    NelmioApiDocBundle:
        resource: "@NelmioApiDocBundle/Resources/config/routing.yml"
        prefix:   /info/doc
     
    fos_oauth_server_token:
        resource: "@FOSOAuthServerBundle/Resources/config/routing/token.xml"
    config.yml

    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    nelmio_api_doc: ~
     
    fos_user:
        db_driver: orm
        firewall_name: api
        user_class: ApiTlsBundle\Entity\User
     
    # FOSRestBundle
    fos_rest:
        param_fetcher_listener: true
        body_listener: true
        format_listener: true
        view:
            view_response_listener: 'force'
            formats:
                xml: true
                json : true
            templating_formats:
                html: true
            force_redirects:
                html: true
            failed_validation: HTTP_BAD_REQUEST
            default_engine: twig
        routing_loader:
            default_format: json
            include_format: false
     
    fos_oauth_server:
        db_driver:           orm
        client_class:        ApiTlsBundle\Entity\Client
        access_token_class:  ApiTlsBundle\Entity\AccessToken
        refresh_token_class: ApiTlsBundle\Entity\RefreshToken
        auth_code_class:     ApiTlsBundle\Entity\AuthCode
        service:
            user_provider: fos_user.user_manager
    Ça parle a quelqu’un ce genre de problème ? hellllp

  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
    si tu autorises l'authenfication oauth: true alors j'imagine qu'il faut faire des choses pour le mettre en place. je ne connais pas assez pour t'en dire plus...

    avec fos_user tu te connectes via formulaire , un cookies sécurité est créé avec l'user dedans etc.... et donc tu es autorisé à naviguer sur lr site web.

    j'imagine que oauth c'est pareil, c'est une authorisation non pas via base de donnée comme fos_user mais par API.


    pour ça qu'il te dit je pense "access denied" error_description="OAuth2 authentication required"

  3. #3
    Membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Août 2016
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2016
    Messages : 7
    Par défaut
    j'imagine que oauth c'est pareil, c'est une authorisation non pas via base de donnée comme fos_user mais par API.
    en faite si oauth stoque en base de donnée les token avec des timestamps d'expiration, le tout lié a des users FOS et des clients oauth (il y a environ 4-5 entités a générer)

    J'ai suivi cette procédure sf2 pourtant simple .. https://gist.github.com/tjamps/11d617a4b318d65ca583

  4. #4
    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
    oubli le message précedent que j'ai écris.

    tu as pensé à vider le cache ?

  5. #5
    Membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Août 2016
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2016
    Messages : 7
    Par défaut
    oui oui biensur , merci pour tes retours !

  6. #6
    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
    access_token est bien mis dans le header ?
    tu utilises postman ? pour tester ?

    (important: entre chaque modif, vide le cache)

Discussions similaires

  1. Probleme Access
    Par jmjmjm dans le forum Langage SQL
    Réponses: 2
    Dernier message: 16/12/2005, 21h23
  2. Probleme Pointeur - API
    Par syannic dans le forum C
    Réponses: 18
    Dernier message: 10/10/2005, 09h51
  3. [EXE] Problème avec Api
    Par Regis.C dans le forum Général Java
    Réponses: 5
    Dernier message: 14/03/2005, 11h09
  4. Probleme D'API WIN32 - NetServerEnum
    Par gnolfy dans le forum C++Builder
    Réponses: 1
    Dernier message: 22/11/2004, 20h39
  5. Probleme connection API C
    Par Biou Pink Powa dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 29/04/2004, 12h04

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