"use strict"; const fs = require('node:fs/promises'); const path = require('path'); exports.go = async (req, res, postData, urlParsed) => { try { console.log('[api/logout] Запрос выхода из системы:', { phone: postData.phone, hasHash: !!postData.hash }); // Нормализуем номер телефона const normalizedPhone = postData.phone ? postData.phone.replace(/\D/g, '') : null; if (!normalizedPhone) { return res.end(JSON.stringify({ success: true, message: "Выход выполнен (данные не переданы)" })); } // Читаем сессионные хэши let hash = {}; try { const hashData = await fs.readFile(path.join(__dirname, '../data/hash.ini'), 'utf8'); hash = JSON.parse(hashData); } catch (error) { console.warn('[api/logout] Файл hash.ini не найден'); hash = {}; } // Удаляем сессионный хэш пользователя if (normalizedPhone in hash) { console.log('[api/logout] Удаляем сессионный хэш для:', normalizedPhone); delete hash[normalizedPhone]; // Сохраняем обновленный файл хэшей await fs.writeFile(path.join(__dirname, '../data/hash.ini'), JSON.stringify(hash)); console.log('[api/logout] ✅ Сессионный хэш удален'); } else { console.log('[api/logout] Сессионный хэш не найден для:', normalizedPhone); } // Возвращаем успешный результат res.end(JSON.stringify({ success: true, message: "Выход выполнен успешно" })); } catch (error) { console.error('[api/logout] Критическая ошибка:', error); res.end(JSON.stringify({ success: true, // Даже при ошибке считаем выход успешным message: "Выход выполнен" })); } };