Symfony2 Facebook connect - 使用js sdk登录后重定向

时间:2012-11-12 11:19:36

标签: javascript facebook sdk symfony-2.1

我正在使用javascript sdk在我的Symfony2.1公司网站上实现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>

我面临的问题是,我正在绝望地寻找一种方法,在用户登录后将用户重定向到当前页面。现在的行为是用户总是被重定向到我网站的主页。

我知道在使用php sdk时有一个redirect-uri参数,我正在寻找与js sdk类似的东西,我不得不说我很难找到它。

window.location = "{{ hwi_oauth_login_url('facebook') }}";来自Symfony2 OAuth Bundle,用于管理Facebook连接。也许我需要告诉OAuth Bundle在成功登录后重定向的位置,但无法真正找到解决方案。

感谢您的任何想法。

1 个答案:

答案 0 :(得分:0)

好吧,实际上非常简单,只需在我的security.yml中添加use_referer: true即可完成工作:

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

解决。