0

Facebook認証を使用するWebサイトがあります。次のコードを使用してログインおよびログアウト機能を実装しました-

$scope = 'email,publish_actions';
$loginUrl   = $facebook->getLoginUrl(array('scope' => $scope,'redirect_uri'=>$redirect_uri));
$logoutUrl = $facebook->getLogoutUrl(array('next' => $redirect_uri));

ここまでは問題なく動作していますが、ウェブサイトからログアウトすると問題が発生します。次のことが起こります-

  1. Facebook からログアウトしました (www.facebook.com を更新して確認しました)。
  2. しかし、私のウェブサイトにはまだ「ログインしています」と表示されます。
  3. また、facebook.com からログアウトすると、両方が同じブラウザーにあるにもかかわらず、自分の Web サイトにログインしたままになります。

私は StackOverflow で投稿を見つけました (私は二度と見つけられません、申し訳ありません)。これは、Facebook が の値を$facebook->getUser()セッションに保存すると述べています。だから私がしたことはlogout.php、単純に次のコードでページを作成することでした-

<?php
session_start();
session_destroy();
?>

logout.phpこれで問題は解決しますが、ページを手動で呼び出す必要があります。logout.phpでは、への呼び出しと一緒にへの呼び出しをバインドし$logoutUrl、ユーザーを元の にリダイレクトするにはどうすればよいですかredirect_uri。または、プロセス全体を実行する他の方法はありますか。何らかの理由で PHP SDK を使用する必要があります。

4

1 に答える 1

2

あなたの logout.php でこれを試してください

if ($facebook->getLogoutUrl() == TRUE) {
     session_start();
     $facebook->destroySession();
     session_destroy();
     header('location:Youruri'); 
    }
于 2013-10-09T06:09:10.320 に答える