const express = require('express'); const cors = require("cors"); const bodyParser = require('body-parser'); const auth = require("./routes/auth/auth"); const checkSession = require("./routes/auth/checkSession"); const authIgnorePaths = ['auth'] 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); //todo Применяем middleware функцию для всех маршрутов // Авторизация 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'); });