2016-09-27 2 views
1

Я боролся целый день с HWIOAuthBundle, и я просто не могу заставить его делать то, что мне нужно.Symfony 3, HWI OAuth с доктриной, авторегистрация, без FOS UserBundle

Я хочу, чтобы только имя пользователя 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 устанавливается в соответствии с Документами, не размещать его, потому что он содержит свои идентификаторы клиентов и секреты.

Что я делаю неправильно, что он, по-видимому, даже не звонит моему провайдеру?

ответ

1

Боюсь, что я давно отказался от HWIOAuthBundle, так как почти невозможно разработать против. К счастью, с новым компонентом Guard это намного проще. Я использовал следующие файлы кода и примеров кода для реализации входа с Linkedin на сайте с формой, используемой для подтверждения/выбора имени пользователя, но это может быть сделано, если вы согласны с формой, указанной в названии источник OAuth.

+0

Я думаю Guard гораздо легче реализовать, так что даже если это не отвечает на вопрос напрямую, это, вероятно, самый лучший ответ. – Tom

Смежные вопросы