import express from 'express'; import cors from "cors"; import bodyParser from 'body-parser'; import {auth} from "./routes/auth/auth.js"; import {checkSession} from "./routes/auth/checkSession.js" import {ping} from "./routes/test/ping.js"; const authIgnorePaths = ['/ping'] const app = express(); // Middleware для проверки авторизации const checkAuth = async (req, res, next) => { if (authIgnorePaths.includes(req.path)) { // Если маршрут в списке, то не проверяем сессию return next(); } const authToken = req.headers.authorization; if (!authToken) { return res.status(401).json({error: 'Unauthorized'}); } const session = await checkSession(authToken) if(session){ return next(); } return res.status(401).json({error: 'Unauthorized'}); }; app.use(cors()); // разрешаем все источники app.use(bodyParser.json()); app.use(checkAuth); // Применяем middleware функцию для всех маршрутов // Проверка сессии app.get(['/ping'], async (req, res) => { try{ const result = await ping(req) res.status(200).json(result); }catch (e) { console.log('Ошибка') res.status(500).json({error: e}) } }); // Авторизация app.post(['/auth'], async (req, res) => { try{ const result = await auth(req.body) if(result === 'Unauthorized'){ res.status(401); } res.status(200).json(result); }catch (e) { console.log('Ошибка') res.status(500).json({error: e}) } }); // Проверка сессии app.get(['/checkSession'], async (req, res) => { try{ const authToken = req.headers.authorization ?? null const result = await checkSession(authToken) res.status(200).json(result); }catch (e) { console.log('Ошибка') res.status(500).json({error: e}) } }); //todo remove // Функция для проверки событий // async function runEvents() { // await Promise.all([ // suspiciousSearch(), // checkMaxConsumersCount() // ]) // } //интервал проверки событий // setInterval(runEvents, 180*1000); //180 секунд // Запуск сервера app.listen(3000, () => { console.log('Сервер запущен на порту 3000'); });