1

因此,我设法将 FOSFacebook 捆绑包与 FOSUser 捆绑包一起集成到我的应用程序中。现在它在我的开发服务器上正常工作,但没有一些错误,但它可以工作。

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

现在由于某种原因,当我将它部署到具有相同地址的实时服务器时(我正在更改我的主机文件以模拟域),当我尝试登录时,我得到“找不到“GET /facebook/login”的路由如果我尝试在开发人员上访问此页面,我会收到相同的消息,但通常它会登录我,然后将我重定向到索引。在现场它卡在 /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 没有路线,但我相信它应该是这样的。任何想法的人?

4

2 回答 2

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 定义自己的控制器,但您不必这样做!

于 2012-03-30T08:18:30.183 回答
0

事实证明,不知何故,在我的实时站点上,我忘记了正确设置 parameters.ini,因此,每当我尝试登录时,它都会失败,但实际上从未完全失败。

于 2012-03-30T11:56:04.447 回答