Doctrine orm Symfony 3,HWI OAuth,带条令,自动注册,无FOS用户包

Doctrine orm Symfony 3,HWI OAuth,带条令,自动注册,无FOS用户包,doctrine-orm,symfony,hwioauthbundle,Doctrine Orm,Symfony,Hwioauthbundle,我和HWIOAuthBundle打了一整天的架,我就是不能让它做我需要的 我只想要oauth登录,所以没有表单登录,没有注册,一切都要通过oauth。我想用我从oauth获得的配置文件数据在首次登录时自动创建新用户帐户。我不想使用FOS UserBundle,因为我看不出它提供了我在我的场景中真正需要的功能(我正在其他项目中使用它) 现在,我实现了自己的用户提供程序,继承了包含的EntityUserProvider,我在每个方法中抛出异常,只是为了查看它从何处获取用户数据,并且没有一个被触发 所

我和HWIOAuthBundle打了一整天的架,我就是不能让它做我需要的

我只想要oauth登录,所以没有表单登录,没有注册,一切都要通过oauth。我想用我从oauth获得的配置文件数据在首次登录时自动创建新用户帐户。我不想使用FOS UserBundle,因为我看不出它提供了我在我的场景中真正需要的功能(我正在其他项目中使用它)

现在,我实现了自己的用户提供程序,继承了包含的EntityUserProvider,我在每个方法中抛出异常,只是为了查看它从何处获取用户数据,并且没有一个被触发

所以我正式放弃,向社区寻求帮助。以下是我的配置:

security:

providers:
    oauth:
        id:             campfire.user_provider

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

    secured_area:
        anonymous: ~
        oauth:
            resource_owners:
                facebook:       "/login/check-facebook"
                google:         "/login/check-google"
            login_path:         /login/
            use_forward:        false
            failure_path:       /login/

            oauth_user_provider:
                oauth:          ~

access_control:
    - { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY }



services:

  campfire.user_provider:
    class:      CampfireBundle\Security\OAuthUserProvider
    arguments:  ["@doctrine", CampfireBundle\Entity\Author, {facebook: facebook_id, google: google_id}]
config.yml是根据文档设置的,没有发布,因为它包含我的客户ID和机密


我做错了什么,它甚至没有打电话给我的用户提供商?

恐怕我很久以前就放弃了HWIOAuthBundle,因为它几乎不可能开发。谢天谢地,有了新的防护组件,它变得容易多了。我使用下面的包和示例代码文件在站点上实现了Linkedin登录,表单用于确认/选择用户名,但如果您接受OAuth源代码提供的名称,则可以取消该功能

  • ,这是可以避免的

我认为Guard更容易实现,所以即使这不能直接回答问题,它可能是最好的答案。