$userName, 'token' => $token, 'expired_at' => date('Y-m-d H:i:s', strtotime('+7 days')) ]); } catch (Exception $e) { error_log("Failed to save token: " . $e->getMessage()); return false; } return true; } function getUserByToken($token) { try { $pdo = Database::getConnection(); $stmt = $pdo->prepare(" SELECT username FROM api_tokens WHERE token = ? AND expired_at > GETDATE() "); $stmt->execute([$token]); $result = $stmt->fetch(PDO::FETCH_ASSOC); // Debug: Log token validation attempt // error_log("Token validation for: " . substr($token, 0, 16) . "... Result: " . ($result ? "Found user: " . $result['username'] : "Not found")); return $result; } catch (Exception $e) { error_log("Failed to get user by token: " . $e->getMessage()); return null; } }