2014-11-11 4 views
0

Я делал это согласно документации и ресурсам из Интернета. но он не перенаправляет пользователя default_target_path указанныйHWIOauthBundle не перенаправляется на нужный путь после входа в систему

вот мой security.yml

security: 
    encoders: 
     FOS\UserBundle\Model\UserInterface: sha512 

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

    providers: 
     fos_userbundle: 
      id: fos_user.user_provider.username 

    firewalls: 
     secured_area: 
      pattern: ^/user 
      anonymous: ~ 
      oauth: 
       remember_me: true 
       resource_owners: 
        facebook:   "/user/login/check-facebook" 
#     google:    "/login/check-google" 
#     my_custom_provider: "/login/check-custom" 
       login_path:   /user/login 
       check_path:   /user/connect 
       use_forward:   false 
       failure_path:  /user/login 
       default_target_path: /user/like 

       provider: fos_userbundle 
       oauth_user_provider: 
#      oauth: ~ 
        service: hwi_oauth.user.provider.fosub_bridge 

      logout: true 

    access_control: 
     - { path: ^/user/login, roles: IS_AUTHENTICATED_ANONYMOUSLY } 
     - { path: ^/user/connect, roles: IS_AUTHENTICATED_ANONYMOUSLY } 
     - { path: ^/user(.*), roles: ROLE_USER } 

и config.yml является

hwi_oauth: 
    # name of the firewall in which this bundle is active, this setting MUST be set 
    firewall_name: secured_area 
    connect: 
      confirmation: true 
    resource_owners: 
     facebook: 
      type:    facebook 
      client_id:   id 
      client_secret:  secret 
      scope:    "email user_birthday" 
      paths: 
       email:   email 
       birthday: user_birthday 

    fosub: 
     # try 30 times to check if a username is available (foo, foo1, foo2 etc) 
     username_iterations: 30 

     # mapping between resource owners (see below) and properties 
     properties: 
      facebook: fbID 

fos_user: 
    db_driver: orm # other valid values are 'mongodb', 'couchdb' and 'propel' 
    firewall_name: main 
    user_class: Auth\UserBundle\Entity\User 

в конце концов, это перенаправить меня к,

http://myurl/user/connect/service/facebook?key=1415715954 

и отображает выходной текст как header.success

Что мне делать?

+0

Вы уверены, что '/ user/like' соответствует пути? – stevenll

+0

это была опечатка .. такой noob ошибка. Я изменил '- {path: ^/user /, role: ROLE_USER}', и он перенаправляется отлично. Я новичок в symfony2. –

ответ

0

Там была Typo, простая ошибка. а @StivenLlup предложил в комментариях,

Я изменил

access_control: 
     - { path: ^/user/login, roles: IS_AUTHENTICATED_ANONYMOUSLY } 
     - { path: ^/user/connect, roles: IS_AUTHENTICATED_ANONYMOUSLY } 
     - { path: ^/user(.*), roles: ROLE_USER } # changed this 

в

access_control: 
      - { path: ^/user/login, roles: IS_AUTHENTICATED_ANONYMOUSLY } 
      - { path: ^/user/connect, roles: IS_AUTHENTICATED_ANONYMOUSLY } 
      - { path: ^/user/, roles: ROLE_USER } # to this 

Если служба HWIOauthBundle не может найти правильный путь для перенаправления как /user/like то эта проблема возникает

также если в контроллере указанного пути есть ошибка, то и правильное перенаправление не работает

добавив правильный путь в access_control решил.