0

javascript SDKを使用して、Symfony2.1会社のWebサイトにFacebook接続を実装しています。

私が使用している次のコードは正常に動作します。

<script>
    window.fbAsyncInit = function() {
        FB.init({
            appId  : 'my-app-id', // App ID
            cookie : true,
            xfbml  : true,
            oauth  : true
        });
    };

    function after_click() {
        FB.getLoginStatus(function(response) {
            if (response.status === 'connected') {
                window.location = "{{ hwi_oauth_login_url('facebook') }}";
            }
        });
    }

    // Load the SDK Asynchronously
    (function(d){
        var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0];
        if (d.getElementById(id)) { window.fbAsyncInit(); return;}
        js = d.createElement('script'); js.id = id; js.async = true;
        js.onload = window.fbAsyncInit;
        js.src = '//connect.facebook.net/fr_FR/all.js';
        ref.parentNode.insertBefore(js, ref);
    }(document));
</script>

<div class="fb-login-button m_y" scope="email,user_birthday" onlogin="after_click()"></div>

私が直面している問題は、ログイン後にユーザーを現在のページにリダイレクトする方法を必死に探していることです。現在、ユーザーは常に私の Web サイトのホームページにリダイレクトされます。

php sdk を使用するときに redirect-uri パラメータがあることは知っています。js sdk と同様のものを探していますが、見つけるのに苦労していると言わざるを得ません。

window.location = "{{ hwi_oauth_login_url('facebook') }}";Symfony2 OAuth バンドルから提供され、Facebook 接続の管理に使用されます。ログインが成功した後にリダイレクトする場所をOAuthバンドルに伝える必要があるかもしれませんが、その解決策も実際には見つかりません。

ご意見ありがとうございます。

4

1 に答える 1

0

わかりました、実際には非常に簡単でしuse_referer: trueた。security.yml を追加するだけで仕事ができました。

security:
    ...
    firewalls:
        portal_area:
            ...
            oauth:
                resource_owners:
                    facebook:      "/login/check-facebook"
                login_path:        /connect
                failure_path:      /connect
                always_use_default_target_path: false
                default_target_path: /
                target_path_parameter: _target_path
                use_referer: true

解決しました。

于 2012-11-12T16:37:18.147 に答える