0

Webサイトの管理セクションに接続するようにFOSUserBundleを正常に構成しました。これは、うまく機能します。

パブリックユーザーがFacebook経由でのみWebサイトにログインできるようにしたいので、FOSFacebookBundleもインストールしました。これは機能します。ある種。ログイン、認証、ユーザーのプロファイルページへのアクセス、およびログアウトができます。すべてが期待どおりに機能します。

ただし、ユーザーがFacebook経由でログインした場合、そのユーザーはデータベースに追加されません。これは、ドキュメントの下部にある「カスタムユーザープロバイダー」(https://github.com/FriendsOfSymfony/FOSFacebookBundle)が行うことになっていることと誤解していますか?

基本的に、Facebookログインが発生すると、ユーザーが追加され(必要な場合)、FOSUserBundleを介してフェッチされます。

私は何度もドキュメントをフォローし、SOに関する質問を読んで、何が起こっているのか(起こっていないのか)を理解できません。

誰かがコードのどこでログインアクションがFacebookデータでデータベースを更新しない原因になっている可能性があるかについてのアイデアを持っていますか?

4

1 に答える 1

2

security.yml内:

    providers:
        chain_provider:
            chain:
                providers: [my_fos_facebook_provider, fos_userbundle]
        my_fos_facebook_provider:
            id: my.facebook.user
        fos_userbundle:
            id: fos_user.user_manager
    firewalls:
        admin:
            pattern:      /admin(.*)
            form_login:
                provider:       fos_userbundle
                login_path:     /admin/login
                use_forward:    false
                check_path:     /admin/login_check
                failure_path:   null
            logout:
                path:           /admin/logout
            anonymous:    true
        public:
            # since anonymous is allowed users will not be forced to login
            pattern:   ^/.*
            fos_facebook:
                provider: my_fos_facebook_provider
                app_url: "http://www.facebook.com/apps/application.php?id=your_app_id"
                server_url: "http://localhost/facebookApp/"
                login_path: /
                check_path: /login_check_fb
                default_target_path: /moi
            anonymous: true
            logout:
                handlers: ["fos_facebook.logout_handler"]

アイデアは、管理者が工場のユーザー名とパスワードを実行してアクセスされ、通常のユーザーがFacebook経由でログインするというものです。

ここで重要なのは(私が持っていた)複数のプロバイダーを定義することですが、おそらく最も重要なのは、各ファイアウォールで「プロバイダー」を指定することです。管理者の場合はfos_userbundle、公開の場合はmy_fos_facebook_provider

于 2012-11-19T00:07:55.047 に答える