Update: 2026-07-30 02:27:45

This commit is contained in:
Hamza-Ayed
2026-07-30 02:27:45 +03:00
parent 5f62455113
commit ca4a7c2e70
56 changed files with 3391 additions and 709 deletions
+20 -3
View File
@@ -10,9 +10,26 @@ use App\Middleware\AuthMiddleware;
$decoded = AuthMiddleware::check();
$userId = $decoded['user_id'];
// 2. Invalidate Refresh Token
// 2. Invalidate the refresh token.
// A mobile logout must only sign THIS device out - clearing the shared user
// column would drop every other device the user owns.
$db = Database::getInstance();
$stmt = $db->prepare("UPDATE users SET refresh_token_hash = NULL WHERE id = ?");
$stmt->execute([$userId]);
$deviceId = $decoded['device_id'] ?? null;
if ($deviceId) {
$stmt = $db->prepare("
UPDATE user_devices
SET refresh_token_hash = NULL,
refresh_expires_at = NULL,
push_token = NULL,
live_activity_token = NULL,
is_trusted = 0
WHERE user_id = ? AND device_fingerprint = ?
");
$stmt->execute([$userId, $deviceId]);
} else {
$stmt = $db->prepare("UPDATE users SET refresh_token_hash = NULL WHERE id = ?");
$stmt->execute([$userId]);
}
json_success(null, 'تم تسجيل الخروج بنجاح');