2012-11-12 49 views
0

我在我的Symfony2.1公司網站上使用javascript sdk實現Facebook連接。Symfony2 Facebook連接 - 使用js sdk登錄後重定向

下面的代碼,我使用,做工精細:

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

我現在面臨的問題是,我desperatly尋找一種方式,他登錄後,將用戶重定向到當前頁面現在。行爲是用戶總是被重定向到我的網站的主頁。

我知道使用php sdk時有一個redirect-uri參數,我正在尋找類似於js sdk的東西,我不得不說我很難找到它。

window.location = "{{ hwi_oauth_login_url('facebook') }}";來自Symfony2 OAuth Bundle,用於管理Facebook連接。也許我需要告訴OAuth Bundle成功登錄後重定向到哪裏,但是無法真正找到解決方案。

感謝您的任何想法,你可以有。

+0

爲什麼不使用'location.reload()'? – CBroe

+0

那麼我需要使用'window.location =「{{hwi_oauth_login_url('facebook')}}」;'實際驗證FB身份驗證過程並將用戶連接到我的網站 – SebScoFr

+0

您可以將當前網址附加到該地址客戶端),然後在處理完登錄後從那裏重新導向。 – CBroe

回答

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 

解決。