diff --git a/server.js b/server.js index c16f0ea..d6f0be3 100644 --- a/server.js +++ b/server.js @@ -149,15 +149,22 @@ http.createServer(async (req, res) => { // API: Логин if (req.method === "POST" && url === "/api/login") { - const data = readData(); - const { login, password } = await body(req); - const user = data.users.find(u => u.login === login && u.password === password); - if (!user) { - res.writeHead(401, { "Content-Type": "application/json" }); - return res.end(JSON.stringify({ ok: false, error: "Неверный логин или пароль" })); + try { + const data = readData(); + const creds = await body(req); + const login = creds.login; + const password = creds.password; + const user = data.users.find(u => u.login === login && u.password === password); + if (!user) { + res.writeHead(401, { "Content-Type": "application/json" }); + return res.end(JSON.stringify({ ok: false, error: "Неверный логин или пароль" })); + } + res.writeHead(200, { "Content-Type": "application/json" }); + return res.end(JSON.stringify({ ok: true, user: { login: user.login, name: user.name, role: user.role } })); + } catch (e) { + res.writeHead(500, { "Content-Type": "application/json" }); + return res.end(JSON.stringify({ ok: false, error: "Ошибка сервера: " + e.message })); } - res.writeHead(200, { "Content-Type": "application/json" }); - return res.end(JSON.stringify({ ok: true, user: { login: user.login, name: user.name, role: user.role } })); } // API: Logout (просто для вида)