2012-04-17 15 views
0

私はFacebookのjavascriptクライアント側のアプリ認証に問題があります。以下のコードは、Appが承認されていないときに期待通りに機能し、App authorizationポップアップが表示されます。同じコードがcodeignigterで実行されると、認証ダイアログが表示されません。Facebookのクライアント側でのアプリ認証

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

    // Init the SDK upon load 
    window.fbAsyncInit = function() { 
    FB.init({ 
     appId  : '169550646480230', // App ID 
     channelUrl : '//'+window.location.hostname+'/channel', // Path to your Channel File 
     status  : true, // check login status 
     cookie  : true, // enable cookies to allow the server to access the session 
     xfbml  : true // parse XFBML 
    }); 
+0

サーバーのサイドコードなどのHTMLを投稿してください。 –

答えて

0

これを実証しました。

Javascript認証の前に実行されるPHPフェイスブックコールは、サーバー上で例外を生成し、すべてのHTMLアクティビティを停止します。私はその理由のために非同期と呼ばれると思います。

0

これは、2つのもの(私はここでの仮定を作っています)があります:CSRFは、FBから

  • 応答が無効なに除外されて有効になっており、Facebookの
  • から外部の応答をブロックしている

    1. URI文字。

    最初にCSRFを無効にし、それが機能するかどうかを確認してください。それが私の出発点になります。

    +0

    デフォルトで無効になっているようです。 $ config ['csrf_protection'] = FALSE; –

    関連する問題