如何使用FOSOAuthServerBundle设置HWIOAuthBundle

时间:2015-08-10 11:47:45

标签: symfony hwioauthbundle fosoauthserverbundle

尝试将这两个捆绑包与最新的Symfony(V:2.7.2)一起使用。

FOSOauth设置正常,但添加HWIOAuthBundle并不是那么简单。按照原生Read.me中的说明,我接受了这个:

  • 服务“hwi_oauth.security.oauth_utils”依赖于a 不存在的服务“hwi_oauth.resource_ownermap.api”。

如何一起设置这两个?

2 个答案:

答案 0 :(得分:1)

您似乎还没有在希望HWIOAuthBundle使用的防火墙( security.yml 文件)中正确配置 oauth 部分。 例如,Facebook:

 // app/config/config.yml

 hwi_oauth:
    firewall_name: main
    resource_owners:
        facebook:
            type: facebook
            ...

然后您需要配置防火墙

// app/config/security.yml

main:
    pattern:   ^/
    oauth:
        resource_owners:
            facebook: "/login/check-facebook"
        oauth_user_provider:
            service: my_custom_oauth_user_provider
    ...

不要忘记申报facebook 登录检查路线

// app/config/routing.yml

facebook_login:
    path: /login/check-facebook

您还需要创建一个用户提供程序(您可以扩展和修改的包本身has some built-in providers)并将其注册为服务

// app/config/services.yml

my_custom_oauth_user_provider:
    class: AppBundle\Security\OAuthUserProvider

正如您的问题是如何使用FOSOAuthServerBundle设置HWIOAuthBundle,有一个非常完整的指导如何实现这一目标:A way to integrate FosUserBundle and HWIOAuthBundle

答案 1 :(得分:0)

您需要使用身份验证方式添加新防火墙(例如secured_area)" oauth"。

例如:

security:
    firewalls:
        secured_area:
            anonymous: ~
            oauth:
                resource_owners:
                    facebook:           "/login/check-facebook"
                    google:             "/login/check-google"
                    my_custom_provider: "/login/check-custom"
                    my_github:          "/login/check-github"
                login_path:        /login
                use_forward:       false
                failure_path:      /login

                oauth_user_provider:
                    service: my.oauth_aware.user_provider.service

您可以找到此信息here