したがって、基本的に単純化された例として、2 つのファイルがあります。1 つは index.php ファイルで、もう 1 つは logout.php ファイルです。
私の index.php ファイルには次のようなものが含まれています (コードの不要な行を切り取りました。ユーザーが私のアプリを認証したと仮定しましょう):
require_once "class/facebook/config.php";
try{
include_once "facebook.php";
}catch(Exception $e){
error_log($e);
}
// Create our application instance
$facebook = new Facebook(array(
'appId' => APP_ID,
'secret' => APP_SECRET,
'cookie' => true,
'domain' => REDIRECT_URI,
));
// Get User ID
$user = $facebook->getUser();
print_r($user);
したがって、Facebook にログインしてこのページをロードすると、基本的にユーザーの Facebook ID が出力されます。これまでのところうまくいっています。
ログアウトするには、次のようなものを含む logout.php を使用するとします。
require_once "class/facebook/config.php";
try{
include_once "class/facebook/facebook.php";
}catch(Exception $e){
error_log($e);
}
$facebook = new Facebook(array('appId' => APP_ID, 'secret' => APP_SECRET, 'cookie' => true));
$facebook->destroySession();
header('location:'.REDIRECT_URI);
このページを読み込むと、Facebook とアプリからログアウトされ、インデックス ページにリダイレクトされます。ここまで順調!index.php がロードされてログアウトされたため、0 が出力されます。それも良さそうです。
シナリオを少し変えてみましょう。facebook にログインしていて、index.php をロードしているとします。うまく機能し、ユーザー ID を返します。罰金。ここで、別のタブを開いて facebook.com に移動するとします。次に、facebook.com から直接ログアウトします。
ここで、前のタブで index.php を更新すると、ユーザーが実際に facebook から既にログアウトしているにもかかわらず、古いユーザー ID が表示されます!