49 lines
1.2 KiB
PHP
49 lines
1.2 KiB
PHP
<?php
|
|
/**
|
|
* Fociz Uitloggen
|
|
*/
|
|
|
|
require_once __DIR__ . '/../includes/auth.php';
|
|
start_secure_session();
|
|
|
|
// Vernietig persistente login en sessie in database (SOC 2 CC6.1 / ISO 27001 A.9.4.2)
|
|
if (!empty($_SESSION['user_id'])) {
|
|
$uid = (int)$_SESSION['user_id'];
|
|
try {
|
|
$db = get_db_connection();
|
|
ensure_remember_token_columns($db);
|
|
$stmt = $db->prepare("UPDATE users SET remember_token = NULL, remember_token_expires_at = NULL WHERE id = ?");
|
|
$stmt->execute([$uid]);
|
|
|
|
fociz_terminate_session(session_id());
|
|
fociz_log_audit($uid, 'SESSION_TERMINATED_LOGOUT', 'users', $uid, ['ip' => fociz_get_client_ip()], 'SUCCESS', $_SESSION['user_email'] ?? null);
|
|
} catch (Throwable $e) {
|
|
// Stil negeren bij uitloggen
|
|
}
|
|
}
|
|
|
|
// Verwijder remember cookie
|
|
clear_remember_cookie();
|
|
|
|
// Vernietig alle sessie variabelen
|
|
$_SESSION = [];
|
|
|
|
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();
|
|
|
|
header('Location: /auth/login.php');
|
|
exit;
|
|
|