1

そこで、FOSUser バンドルと一緒に FOSFacebook バンドルをアプリに統合するようにしました。現在、開発サーバーでいくつかのバグを除いて適切に機能していますが、機能しています。

更新:何らかの理由で、Facebook は Cookie を subdomain.mysite.com ではなく mysite.com.au に設定しています。これは、Cookie の取得に失敗し、デフォルトの失敗ページである /facebook/login に移動することを意味します。

なんらかの理由で、同じアドレスを持つライブサーバーにデプロイすると(ドメインをシミュレートするためにホストファイルを変更しています)、ログインしようとすると「「GET /facebook/login」のルートが見つかりませんdev でこのページにアクセスしようとすると、同じメッセージが表示されますが、通常はログインしてからインデックスにリダイレクトされます。

これが私の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 に答える