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;

?>