Аутентификация Facebook + UserBundle с помощью symfony2 - PullRequest
34 голосов
/ 25 сентября 2011

Я пытаюсь аутентифицировать своих пользователей через Facebook или userbundle на symfony2

Вот что я сделал до сих пор (и это работает, хотя и не так, как я хочу):

firewalls:
    main:
        pattern: .*
        fos_facebook:
            app_url: "http://apps.facebook.com/appName/"
            server_url: "http://localhost/facebookApp/"
            login_path: /fblogin
            check_path: /fblogin_check
            default_target_path: /
            provider: my_fos_facebook_provider
        form_login:
            check_path: /login_check
        anonymous: true
        logout:
            handlers: ["fos_facebook.logout_handler"]

Проблема с этой конфигурацией заключается в том, что когда пользователь не вошел в систему, он перенаправляется на / login (form_login), в то время как я бы хотел, чтобы он был перенаправлен на аутентификацию Facebook по умолчанию

Я уже пытался просто удалить form_login, но затем, если я захожу / login (то есть, как я хочу, чтобы пользователи входили вне Facebook), он не знает маршрут / login_check для отправки формы входа

Может быть, chain_provider будет решением? Я тоже не заработал

Ответы [ 4 ]

1 голос
/ 26 апреля 2013

Провайдеры цепочек действительно являются решением этой проблемы.Вот как должен выглядеть ваш конфигурационный файл security.yml:

providers:
  my_project.chain_provider:
    chain:
      providers: [fos_userbundle, my_project.facebook_provider]
  fos_userbundle:
    id: fos_user.user_provider.username_email
  my_project.facebook_provider:
    id: my_project.user_provider.facebook

И, конечно, вам нужно определить своего собственного провайдера facebook, как указано здесь

1 голос
/ 23 ноября 2011

Простой и более удобный вариант - показать все параметры входа на странице входа (включая Facebook, Twitter, открытый идентификатор или все, что вы хотите использовать)

0 голосов
/ 02 октября 2012

Также вы можете написать свой прослушиватель событий , где вы будете искать, будет ли пользователь переходить к / форме входа напрямую или путем перенаправления.

0 голосов
/ 22 ноября 2011

Вы должны добавить провайдера fos_userbundle для form_login (и оставить остальные настройки):

form_login:
    provider: fos_userbundle

Я не слишком много копал, но я думаю, что Symfony2 автоматически создает связанного провайдера в этом случае.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...