Я боролся целый день с 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 устанавливается в соответствии с Документами, не размещать его, потому что он содержит свои идентификаторы клиентов и секреты.
Что я делаю неправильно, что он, по-видимому, даже не звонит моему провайдеру?
Я думаю Guard гораздо легче реализовать, так что даже если это не отвечает на вопрос напрямую, это, вероятно, самый лучший ответ. – Tom