Symfony2 - FOSFacebook Bundle - 子域名

时间:2012-03-29 15:08:30

标签: php facebook symfony fosfacebookbundle

因此,我已经将FOSFacebook软件包与FOSUser软件包一起集成到我的应用程序中。现在它在我的开发服务器上正常工作减去了一些错误,但它确实有效。

更新:因此,出于某种原因,facebook将cookie设置为mysite.com.au而不是subdomain.mysite.com,这意味着它无法获取cookie并转到默认值失败页面是/ facebook / login。

现在由于某种原因,当我将其部署到我的实时服务器时,该服务器具有相同的地址(我正在更改我的主机文件以模拟域)当我尝试登录时,我得到了 “找不到”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 :(得分:0)

只需将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定义你自己的控制器!

答案 1 :(得分:0)

事实证明,在我的直播网站上,我忘记了正确地设置参数。所以每当我尝试登录它时都会失败,但实际上从未完全失败。