0

我正在使用 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 在成功登录后重定向到哪里,但也找不到真正的解决方案。

感谢您的任何想法。

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 回答