Symfony2 - FOSFacebook Bundle - Субдомен - PullRequest
1 голос
/ 29 марта 2012

Итак, мне удалось интегрировать пакет FOSFacebook в мое приложение вместе с пакетом FOSUser.Теперь он работает должным образом на моем сервере разработки, за исключением нескольких ошибок, но он работает.

ОБНОВЛЕНИЕ: Так что по какой-то причине Facebook устанавливает cookie для mysite.com.au вместо subdomain.mysite.com, что означает, что он не может получить cookie-файл и переходит на страницу сбоя по умолчанию, которая называется / facebook / login.

Теперь по какой-то причине, когда я развернул его на своем живом сервере, который имеет тот же адрес (я изменяю свой файл hosts для имитации домена), когда я пытаюсь войти, я получаю «Не найден маршрут для»GET / facebook / login "Если я пытаюсь получить доступ к этой странице в dev, я получаю то же сообщение, но обычно оно регистрирует меня и затем перенаправляет меня в индекс. В прямом эфире оно застревает на / facebook / login

Вот мой security.yml

security:
    encoders:
        "FOS\UserBundle\Model\UserInterface": sha512

    role_hierarchy:
        ROLE_ADMIN:       ROLE_USER
        ROLE_SUPER_ADMIN: [ROLE_USER, ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH]

    providers:
        fos_userbundle:
            id: fos_user.user_manager
        my_fos_facebook_provider:
            id: my.facebook.user
    factories:
      - "%kernel.root_dir%/../vendor/bundles/FOS/FacebookBundle/Resources/config/security_factories.xml"
    firewalls:
        public:
            pattern:   ^/
            fos_facebook:
                app_url: "(set to the apps.facebook link I have)"
                server_url: "http://testbed.mysite.com/app_dev.php/"
                check_path: /facebook/check
                login_path: /facebook/login
                default_target_path: /
                provider: my_fos_facebook_provider
            form_login:
                success_handler: authentication_handler
                failure_handler: authentication_handler
                provider: fos_userbundle
            anonymous: true
            logout: true



    access_control:
        - { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/admin/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/testing/secure/, role: IS_AUTHENTICATED_FULLY }
        - { path: ^/admin/secure/, role: ROLE_ADMIN }
        - { path: ^/account, role: IS_AUTHENTICATED_FULLY }
    role_hierarchy:
        ROLE_ADMIN:       ROLE_USER
        ROLE_SUPER_ADMIN: ROLE_ADMIN

Если вам нужны другие файлы, дайте мне знать

Очевидно, что для / facebook / login нет маршрута, но я верютак и должно быть. Есть идеи, люди?

Ответы [ 2 ]

0 голосов
/ 30 марта 2012

Оказывается, что каким-то образом на моем работающем сайте я забыл правильно настроить файл settings.ini, и поэтому всякий раз, когда я пытался войти в систему, он терпел неудачу, но никогда не заканчивался полностью.

0 голосов
/ 30 марта 2012

Просто определите login_path как путь по умолчанию, заданный в security.yml:

_security_login:
    pattern:  /login
    requirements:
        _scheme:  https

_security_check:
    pattern:  /login_check
    requirements:
        _scheme:  https

_security_logout:
    pattern:  /logout
    requirements:
        _scheme:  https

Вы можете определить свой собственный контроллер для login_path, если вам нужна какая-то особая обработка, но вам не нужно!

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