File size: 1,331 Bytes
240bcc5 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
<?php
// セッションを開始
session_start();
// セッション変数を全て解除
$_SESSION = array();
// セッションを破棄
if (ini_get("session.use_cookies")) {
$params = session_get_cookie_params();
setcookie(session_name(), '', time() - 42000,
$params["path"], $params["domain"],
$params["secure"], $params["httponly"]
);
}
// セッションを完全に破棄
session_destroy();
// Googleのアクセストークンも無効化(オプション)
if (isset($_GET['logout_google']) && $_GET['logout_google'] === 'true') {
$googleLogoutUrl = 'https://accounts.google.com/logout';
header('Location: ' . $googleLogoutUrl);
exit;
}
// ログアウト後のリダイレクト先
$redirect_url = isset($_GET['redirect']) ? $_GET['redirect'] : 'login.php';
// JSONレスポンスかリダイレクトかを判定
if (isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {
// AJAXリクエストの場合
header('Content-Type: application/json');
echo json_encode(['status' => 'success', 'redirect' => $redirect_url]);
} else {
// 通常のリクエストの場合
header('Location: ' . $redirect_url);
}
exit;
?> |