如何配置HWIOAuthBundle和FOSUserBundle

时间:2014-07-25 10:11:10

标签: facebook symfony oauth hwioauthbundle

我正在将Fosuserbundle和HWIOAuth Bundle配置为从Facebook和Google登录。 我面临的问题是: 当我尝试通过谷歌帐户登录用户时,当他还没有登录时,因为我输入谷歌的凭据并按登录它显示我错误

No route found for GET/

或者有时候

No route found for GET/ ( from   wwww.mysite.com/app_dev.php/en/home/ )

它确实将用户的信息(例如电子邮件,用户名等)存储在数据库中,当我转到主页时,我发现自己已经登录。

当我尝试登录已使用hi google帐户登录的用户时,它可以正常运行。

我坚持这个......一步一步跟着This文档。除此之外,一切都很完美。

你的帮助将不胜感激。

config.yml

hwi_oauth:
    #this is my custom user provider, created from FOSUBUserProvider - will manage the
    #automatic user registration on your site, with data from the provider (facebook. google, etc.)
    #and also, the connecting part (get the token and the user_id)
    connect:
        account_connector: my_user_provider
    # name of the firewall in which this bundle is active, this setting MUST be set
    firewall_name: main
    fosub:
#        username_iterations: 30
        properties:
            # these properties will be used/redefined later in the custom FOSUBUserProvider service.
            facebook: facebook_id
            google: google_id
    resource_owners:
        facebook:
            type:                facebook
            client_id:           "xxxxxxxxxxxxxxxxxxxxxxx"
            client_secret:       "xxxxxxxxxxxxxxxxxxxxxxx"
            scope:               ""
        google:
            type:                google
            client_id:           "xxxxxxxxxxxxxxxxxxxxxxx"
            client_secret:       "xxxxxxxxxxxxxxxxxxxxxxx"
            scope:               "https://www.googleapis.com/auth/userinfo.email 

-------------------- security.yml ------------

firewalls:
        main:
            pattern:    ^/
            form_login:
                check_path: /login_check
                login_path: /login
                provider: fos_userbundle

#                always_use_default_target_path: true
#                default_target_path:            /%locale%/home

            oauth:
                resource_owners:
                    facebook:           "/login/check-facebook"
                    google:             "/login/check-google"
                login_path:        /login
                failure_path:      /login

                oauth_user_provider:
                                     #this is my custom user provider, created from FOSUBUserProvider - will manage the
                                     #automatic user registration on your site, with data from the provider (facebook. google, etc.)
                       service: my_user_provider
            logout:
                path:   /logout
                target: /%locale%/home
            anonymous: ~

-----------------的routing.yml ------------

fos_user_security:
    resource: "@FOSUserBundle/Resources/config/routing/security.xml"

fos_user_profile:
    resource: "@FOSUserBundle/Resources/config/routing/profile.xml"
    prefix: /profile

fos_user_register:
    resource: "@FOSUserBundle/Resources/config/routing/registration.xml"
    prefix: /register

fos_user_resetting:
    resource: "@FOSUserBundle/Resources/config/routing/resetting.xml"
    prefix: /resetting

fos_user_change_password:
    resource: "@FOSUserBundle/Resources/config/routing/change_password.xml"
    prefix: /profile

#HWIOAuthBundle routes
hwi_oauth_security:
    resource: "@HWIOAuthBundle/Resources/config/routing/login.xml"
    prefix: /login

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

hwi_oauth_redirect:
    resource: "@HWIOAuthBundle/Resources/config/routing/redirect.xml"
    prefix:   /login

facebook_login:
    pattern: /login/check-facebook

google_login:
    pattern: /login/check-google

0 个答案:

没有答案