2013-01-14 4 views
6

FOSOauthServerBundle, FOSRestBundleFOSUserBundle을 기반으로 oauth2 서버를 생성하려고합니다. 나는 내 oauth-server을 테스트 할 수있는 데모 응용 프로그램을 만들고 그것을 통해 데이터를 수신하지 못한 reguest이oauth2 서버의/api 메소드에 액세스

,

(401 오류 '오류 = "ACCESS_DENIED", ERROR_DESCRIPTION = "필요한 OAuth2를 인증"'받은) GET

에도 불구하고 사용자가 인증되었고 클라이언트가 액세스 토큰을 올바르게 수신 했음에도 불구하고.

oauth2가 인증 프로세스를 실행하기 위해 어떻게 api 컨트롤러를 구현해야합니까?

또한, 실제 응용 프로그램을 검사 할 수 있도록 해당 번들을 기반으로하는 oauth 서버 예제를 살펴보고 싶습니다.

내 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 ] } 

감사합니다.

+0

이 해결되었습니다. 문제는 내가 요청한 매개 변수로 액세스 토큰을 보내지 않았지만 헤더에 설정했기 때문입니다. – user1976651

+8

다른 사람들이 동일한 문제를 경험할 수 있도록 자신의 질문에 대한 답을 줄 수도 있습니다. –

+0

@ user1976651 요청에 액세스 토큰을 전달하는 코드를 Google과 공유 할 수 있습니까? 이 코드는 javascript입니까? –

답변

관련 문제