2016-09-27 103 views
1

我一直在用HWIOAuthBundle与整整一天战斗,我无法得到它所需要的。Symfony 3,HWI OAuth with Doctrine,自动注册,无FOS UserBundle

我想要oauth-only登录,所以没有表单登录,没有注册,一切都通过oauth。我想在他们首次登录时使用我从oauth获得的个人资料数据自动创建新的用户帐户。我不想使用FOS UserBundle,因为我没有看到它提供给我的是我真正需要的功能(我在其他项目中使用它)。

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

于是我正式放弃并向社区寻求帮助。这里是我的CONFIGS:

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和秘密没有张贴。

我在做什么错,它显然不是打电话给我的用户提供者?

回答

1

很久以前,恐怕我放弃了HWIOAuthBundle,因为几乎不可能发展。幸运的是,使用新的Guard组件,它要容易得多。我已经使用下面的包和示例代码文件在网站上实现了与Linkedin一起登录,其中用于允许用户名的确认/选择的表单,但如果您接受名称提供的表单OAuth源。

+0

我觉得Guard是更容易实现,所以尽管这并不直接回答这个问题,它可能是最好的答案。 – Tom