2017-05-29 57 views
1

我已经在应用程序中实现了HWIOauthBundle + FOSUserBundle,并且部分工作。HWIOauthBundle - Facebook登录 - Symfony3

登录可以完美地使用和不使用Facebook,但是如果我正常登录的用户不存在或密码错误,它会将我重定向到/连接路由(因为HWIOauthBundle)。

我该如何解决这个问题?如果出现问题,请查看FOSUserBundle返回的内容/ login_check。我不想用Facebook登录。

我security.yml代码:

# To get started with security, check out the documentation: 
# http://symfony.com/doc/current/book/security.html 
security: 
    encoders: 
     FOS\UserBundle\Model\UserInterface: bcrypt 

    role_hierarchy: 
     ROLE_ADMIN:  ROLE_USER 
     ROLE_SUPER_ADMIN: ROLE_ADMIN 

    providers: 
     fos_userbundle: 
      id: fos_user.user_provider.username_email 

    firewalls: 
     # disables authentication for assets and the profiler, adapt it according to your needs 
     dev: 
      pattern: ^/(_(profiler|wdt)|css|images|js)/ 
      security: false 

     main: 
      pattern: ^/ 
      form_login: 
       provider: fos_userbundle 
       csrf_token_generator: security.csrf.token_manager 

      oauth: 
       resource_owners: 
        facebook: '/login' 
       login_path: /connect 
       failure_path: /connect 

       oauth_user_provider: 
        service: hwi_oauth.user.provider.fosub_bridge 
      logout: true 
      anonymous: true 
      remember_me: 
       secret: '%secret%' 
       lifetime: 604800 # 1 week in seconds 
       path: /
       # by default, the feature is enabled by checking a 
       # checkbox in the login form (see below), uncomment the 
       # following line to always enable it. 
       #always_remember_me: true 


    access_control: 
     - { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY } 
     - { path: ^/register$, role: IS_AUTHENTICATED_ANONYMOUSLY } 
     - { path: ^/resetting$, role: IS_AUTHENTICATED_ANONYMOUSLY } 
     - { path: ^/admin, roles: ROLE_ADMIN } 
     - { path: ^/shipment, roles: ROLE_USER } 

我的routing.yml代码:

# app/config/routing.yml 
hwi_oauth_redirect: 
    resource: "@HWIOAuthBundle/Resources/config/routing/redirect.xml" 
    prefix: /connect 

hwi_oauth_connect: 
    resource: "@HWIOAuthBundle/Resources/config/routing/connect.xml" 
    prefix: /connect 

hwi_oauth_login: 
    resource: "@HWIOAuthBundle/Resources/config/routing/login.xml" 
    prefix: /connect 

facebook_login: 
    path: /login/check-facebook 

# main login. 
AppBundle: 
    resource: "@AppBundle/Controller/" 
    type:  annotation 

FrontendBundle: 
    resource: "@FrontendBundle/Controller/" 
    type:  annotation 

FOSUserBundle: 
    resource: "@FOSUserBundle/Resources/config/routing/all.xml" 

FOSMessageBundle: 
    resource: "@FOSMessageBundle/Resources/config/routing.xml" 
    prefix: /messenger 

MyDinxxUserBundle: 
    resource: "@UserBundle/Controller/" 
    type:  annotation 

回答

0

请尝试从 '/登录' 脸谱路径更改为“/登录/签的Facebook '在security.yml中。

oauth: 
    resource_owners: 
     facebook: '/login/check-facebook' 
+0

它的工作方式......它仍然重定向我,但现在在/登录路线,并没有错误。我认为它应该在那个页面上重定向我,但是出现错误。 – Kiddo

+0

好吧,最后一个想法:尝试在security.yml和routing.yml中将'/ connect'更改为'/ login'。 –

+0

所有/连接路由与/登录? – Kiddo