0

Facebook ベースのログインを実装しました。FB.login は完全に機能しますが、FB.logoutは機能しません。さまざまな FB.init を試し、Cookie を削除し、ログアウト ページを連続して数回実行しましたが、ユーザーをログアウトする唯一の方法は facebook 自体です。

ログアウトに使用しているコードは次のとおりです。

<div id="fb-root"></div>
<script src="http://connect.facebook.net/en_US/all.js"></script>
<script>

  FB.init({
    appId: '***************',
    xfbml: true,
    status: true,
    cookie: true
  });

  FB.getLoginStatus();

  FB.logout();
</script>

何か案は?ありがとうございました

4

2 に答える 2

0

これを試してください:

<div id="fb-root"></div>
<script>
  window.fbAsyncInit = function() {
    FB.init({
      appId      : 'YOUR_APP_ID', // App ID
      channelUrl : '//WWW.YOUR_DOMAIN.COM/channel.html', // Channel File
      status     : true, // check login status
      cookie     : true, // enable cookies to allow the server to access the session
      xfbml      : true  // parse XFBML
    });

    // Additional initialization code here
  };

  // 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));
</script>

FB.logout() を呼び出します。FB は事前に初期化する必要があります。

ドキュメントから:

このコードは、SDK を非同期的に読み込むため、ページの他の要素の読み込みをブロックしません。これは、ユーザーと SEO ロボットのページ読み込みを高速化するために特に重要です。

上記のコードの URL はプロトコル相対です。これにより、ブラウザーは、含まれているページと同じプロトコル (HTTP または HTTPS) を介して SDK をロードできるようになり、「安全でないコンテンツ」の警告が防止されます。

window.fbAsyncInit に割り当てられた関数は、SDK が読み込まれるとすぐに実行されます。SDK のロード後に実行するコードは、この関数内で FB.init の呼び出しの後に配置する必要があります。たとえば、ここでユーザーのログイン状態をテストしたり、アプリケーションが関心のある Facebook イベントをサブスクライブしたりします。

于 2014-02-28T11:36:31.490 に答える
0

ボタンの onclick イベントを FB.logout(); にしてみましたか。

function logout(){
     FB.logout(function(response) {
        // user is now logged out
     });
 }

  <button onclick="logout()">LogOut</button>

これを試して

于 2013-02-05T21:08:49.827 に答える