そこで、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 へのルートはありませんが、そのようになっていると思います。アイデアはありますか?