2013-01-14 11 views
6

Próbuję utworzyć serwer oauth2 na podstawie FOSOauthServerBundle, FOSRestBundle i FOSUserBundle. I stworzył aplikację demo do przetestowania moich oauth-server a on nie odbiera dane za pośrednictwem GET reguestdostęp do metod/api na serwerze oauth2

(otrzymała 401 błędzie 'Błąd = "Odmowa dostępu", ERROR_DESCRIPTION = "OAuth2 uwierzytelnianie wymagane"'),

pomimo faktu, że użytkownik został uwierzytelniony, a klient otrzymał token dostępu poprawnie.

W jaki sposób należy zaimplementować kontrolery api, aby oauth2 wykonywał proces uwierzytelniania?

Chciałbym również rzucić okiem na prawdziwy działający przykład serwera Oauth bazujący na tych pakietach, dzięki czemu mógłbym sprawdzić moją aplikację.

mój security.yml:

jms_security_extra: 
    secure_all_services: false 
    expressions: true 

security: 
acl: 
    connection: default 

role_hierarchy: 
    ROLE_ADMIN:  ROLE_USER 
    ROLE_SUPER_ADMIN: [ROLE_USER, ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH] 

providers: 
    in_memory: 
     memory: 
      users: 
       user: { password: userpass, roles: [ 'ROLE_USER' ] } 
       admin: { password: adminpass, roles: [ 'ROLE_ADMIN' ] } 
    fos_userbundle: 
     id: fos_user.user_provider.username 

encoders: 
     FOS\UserBundle\Model\UserInterface: sha512 
     Symfony\Component\Security\Core\User\User: plaintext 

firewalls: 
    api: 
     pattern: ^/api 
     fos_oauth: true 
     stateless: true 

    oauth_authorize: 
     pattern: ^/oauth/v2/auth 
     form_login: 
      provider: fos_userbundle 
      check_path: /oauth/v2/auth_login_check 
      login_path: /oauth/v2/auth_login 
      use_referer: true 
     anonymous: true 

    oauth_token: 
     pattern: ^/oauth/v2/token 
     security: false 

    secured_area: 
     pattern: ^/ 
     anonymous: ~ 
     form_login: 
      provider: fos_userbundle 
      check_path: /login_check 
      login_path: /login 
      always_use_default_target_path: true 
      default_target_path:/

access_control: 
    - { path: ^/oauth/v2/auth_login$, role: IS_AUTHENTICATED_ANONYMOUSLY } 
    - { path: ^/oauth/v2/auth, role: ROLE_USER } 
    - { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY} 
    - { path: ^/, roles: ROLE_USER } 
    - { path: ^/api, roles: [ IS_AUTHENTICATED_FULLY ] } 

Dzięki.

+0

rozwiązał to. Problem polegał na tym, że nie wysłałem tokena dostępu jako parametru w moich żądaniach, ale ustawiłem go w nagłówku. – user1976651

+8

może mógłbyś odpowiedzieć na własne pytanie, aby pomóc innym eksperymentować z tymi samymi problemami. –

+0

@ user1976651 czy możesz udostępnić nam kod podający token dostępu w żądaniu? Ten kod jest javascript? –

Odpowiedz

Powiązane problemy