From 312cc229d8cb95778a5bc4537d14626ca022cd2c Mon Sep 17 00:00:00 2001 From: Alice Date: Sat, 8 Feb 2025 02:23:22 +0300 Subject: [PATCH] =?UTF-8?q?=D0=98=D0=B7=D0=BC=D0=B5=D0=BD=D0=B5=D0=BD?= =?UTF-8?q?=D1=8B=20=D0=B7=D0=B0=D0=BF=D1=80=D0=BE=D1=81=D1=8B=20=D0=B8=20?= =?UTF-8?q?=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD=D1=8B=20=D0=BD?= =?UTF-8?q?=D0=BE=D0=B2=D1=8B=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/routers/dogsitters-finder/index.js | 57 ++++++++++++++----- .../json/2fa/dogsitter.success.json | 3 + .../dogsitters-finder/json/2fa/error.json | 3 +- .../json/2fa/owner.success.json | 3 + .../dogsitters-finder/json/2fa/success.json | 4 -- .../json/auth/dogsitter.success.json | 12 ---- .../dogsitters-finder/json/auth/error.json | 6 +- .../json/auth/owner.success.json | 9 --- .../dogsitters-finder/json/auth/success.json | 5 ++ .../json/register/dogsitter.success.json | 11 +--- .../json/register/error.json | 4 +- .../json/register/owner.success.json | 8 +-- .../json/role/dogsitter.success.json | 4 ++ .../dogsitters-finder/json/role/error.json | 5 ++ .../json/role/owner.success.json | 4 ++ 15 files changed, 79 insertions(+), 59 deletions(-) create mode 100644 server/routers/dogsitters-finder/json/2fa/dogsitter.success.json create mode 100644 server/routers/dogsitters-finder/json/2fa/owner.success.json delete mode 100644 server/routers/dogsitters-finder/json/2fa/success.json delete mode 100644 server/routers/dogsitters-finder/json/auth/dogsitter.success.json delete mode 100644 server/routers/dogsitters-finder/json/auth/owner.success.json create mode 100644 server/routers/dogsitters-finder/json/auth/success.json create mode 100644 server/routers/dogsitters-finder/json/role/dogsitter.success.json create mode 100644 server/routers/dogsitters-finder/json/role/error.json create mode 100644 server/routers/dogsitters-finder/json/role/owner.success.json diff --git a/server/routers/dogsitters-finder/index.js b/server/routers/dogsitters-finder/index.js index b34e6af..07675a4 100644 --- a/server/routers/dogsitters-finder/index.js +++ b/server/routers/dogsitters-finder/index.js @@ -7,33 +7,64 @@ router.get("/users", (request, response) => { router.post("/auth", (request, response) => { const { phoneNumber, password } = request.body; console.log(phoneNumber, password); - if (phoneNumber === "89999999999") { - response.send(require("./json/auth/dogsitter.success.json")); - } else if (phoneNumber === "89555555555") { - response.status(400).send(require("./json/auth/error.json")); + if (phoneNumber === "89999999999" || phoneNumber === "89559999999") { + response.send(require("../json/auth/success.json")); } else { - response.send(require("./json/auth/owner.success.json")); + response.status(401).send(require("../json/auth/error.json")); } }); router.post("/auth/2fa", (request, response) => { - const { code } = request.body; - if (code === "0000") { - response.send(require("./json/2fa/success.json")); + const { phoneNumber, code } = request.body; + if (code === "0000" && phoneNumber === "89999999999") { + response.send(require("../json/2fa/dogsitter.success.json")); + } else if (code === "0000" && phoneNumber === "89559999999") { + response.send(require("../json/2fa/owner.success.json")); } else { - response.status(400).send(require("./json/2fa/error.json")); + response.status(401).send(require("../json/2fa/error.json")); } }); router.post("/register", (request, response) => { const { firstName, secondName, phoneNumber, password, role } = request.body; console.log(phoneNumber, password, role); - if (phoneNumber === "89283244141" || phoneNumber === "89872855893") { - response.status(400).send(require("./json/register/error.json")); + if (phoneNumber === "89999999999" || phoneNumber === "89559999999") { + response.status(401).send(require("../json/register/error.json")); } else if (role === "dogsitter") { - response.send(require("./json/register/dogsitter.success.json")); + response.send(require("../json/register/dogsitter.success.json")); } else { - response.send(require("./json/register/owner.success.json")); + response.send(require("../json/register/owner.success.json")); + } +}); + +router.get("/auth/session", (request, response) => { + const authHeader = request.headers.authorization; + + if (!authHeader) { + return response.status(401).json({ error: "Authorization header missing" }); + } + + // Берём сам токен из заголовка + const token = authHeader.split(" ")[1]; + + if (!token) { + return response.status(401).json({ error: "Bearer token missing" }); + } + + const jwt = require("jsonwebtoken"); + const secretKey = "secret"; + + try { + const decoded = jwt.verify(token, secretKey); + + if (decoded.role === "dogsitter") { + response.send(require("../json/role/dogsitter.success.json")); + } else { + response.send(require("../json/role/owner.success.json")); + } + } catch (e) { + console.log("token e:", e); + return response.status(403).json({ error: "Invalid token" }); } }); diff --git a/server/routers/dogsitters-finder/json/2fa/dogsitter.success.json b/server/routers/dogsitters-finder/json/2fa/dogsitter.success.json new file mode 100644 index 0000000..abce97e --- /dev/null +++ b/server/routers/dogsitters-finder/json/2fa/dogsitter.success.json @@ -0,0 +1,3 @@ +{ + "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6MSwicm9sZSI6ImRvZ3NpdHRlciIsImlhdCI6MTUxNjIzOTAyMn0.7q66wTNyLZp3TGFYF_JdU-yhlWViJulTxP_PCQzO4OI" +} diff --git a/server/routers/dogsitters-finder/json/2fa/error.json b/server/routers/dogsitters-finder/json/2fa/error.json index 7e4581e..bc20d88 100644 --- a/server/routers/dogsitters-finder/json/2fa/error.json +++ b/server/routers/dogsitters-finder/json/2fa/error.json @@ -1,4 +1,5 @@ { "status": "error", - "message": "Invalid code." + "message": "Invalid code", + "statusCode": 401 } diff --git a/server/routers/dogsitters-finder/json/2fa/owner.success.json b/server/routers/dogsitters-finder/json/2fa/owner.success.json new file mode 100644 index 0000000..545112d --- /dev/null +++ b/server/routers/dogsitters-finder/json/2fa/owner.success.json @@ -0,0 +1,3 @@ +{ + "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6Mywicm9sZSI6Im93bmVyIiwiaWF0IjoxNTE2MjM5MDIyfQ.sI9839YXveTpEWhdpr5QbCYllt6hHYO7NsrQDcrXZIQ" +} \ No newline at end of file diff --git a/server/routers/dogsitters-finder/json/2fa/success.json b/server/routers/dogsitters-finder/json/2fa/success.json deleted file mode 100644 index 21e7111..0000000 --- a/server/routers/dogsitters-finder/json/2fa/success.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "status": "success", - "message": "Two-factor authentication passed." -} diff --git a/server/routers/dogsitters-finder/json/auth/dogsitter.success.json b/server/routers/dogsitters-finder/json/auth/dogsitter.success.json deleted file mode 100644 index f7b2168..0000000 --- a/server/routers/dogsitters-finder/json/auth/dogsitter.success.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "data": { - "id": 1, - "phoneNumber": 89283244141, - "firstName": "Вася", - "secondName": "Пупкин", - "role": "dogsitter", - "location": "Россия, республика Татарстан, Казань, улица Пушкина, 12", - "price": 1500, - "aboutMe": "Я люблю собак" - } -} \ No newline at end of file diff --git a/server/routers/dogsitters-finder/json/auth/error.json b/server/routers/dogsitters-finder/json/auth/error.json index 4fded6c..a3fcce3 100644 --- a/server/routers/dogsitters-finder/json/auth/error.json +++ b/server/routers/dogsitters-finder/json/auth/error.json @@ -1,3 +1,5 @@ { - "error": "Пользователь не найден" -} \ No newline at end of file + "message": "Неверный логин или пароль", + "error": "Unauthorized", + "statusCode": 401 +} diff --git a/server/routers/dogsitters-finder/json/auth/owner.success.json b/server/routers/dogsitters-finder/json/auth/owner.success.json deleted file mode 100644 index 8939302..0000000 --- a/server/routers/dogsitters-finder/json/auth/owner.success.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "data": { - "id": 3, - "phoneNumber": 89872855893, - "firstName": "Гадий", - "secondName": "Петрович", - "role": "owner" - } -} \ No newline at end of file diff --git a/server/routers/dogsitters-finder/json/auth/success.json b/server/routers/dogsitters-finder/json/auth/success.json new file mode 100644 index 0000000..ada9161 --- /dev/null +++ b/server/routers/dogsitters-finder/json/auth/success.json @@ -0,0 +1,5 @@ +{ + "status": "success", + "message": "Первый фактор аутентификации пройден", + "statusCode": 200 +} diff --git a/server/routers/dogsitters-finder/json/register/dogsitter.success.json b/server/routers/dogsitters-finder/json/register/dogsitter.success.json index 1f594e6..4327133 100644 --- a/server/routers/dogsitters-finder/json/register/dogsitter.success.json +++ b/server/routers/dogsitters-finder/json/register/dogsitter.success.json @@ -1,12 +1,3 @@ { - "data": { - "id": 5, - "phoneNumber": 89555555555, - "firstName": "Масяня", - "secondName": "Карлова", - "role": "dogsitter", - "location": "Россия, республика Татарстан, Казань, улица Пушкина, 12", - "price": 100, - "aboutMe": "Все на свете - собаки" - } + "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6NSwicm9sZSI6ImRvZ3NpdHRlciIsImlhdCI6MTUxNjIzOTAyMn0.T9V3-f3rD1deA5a2J-tYNw0cACEpzKHbhMPkc7gh8c0" } \ No newline at end of file diff --git a/server/routers/dogsitters-finder/json/register/error.json b/server/routers/dogsitters-finder/json/register/error.json index 2aaf5c9..ba91192 100644 --- a/server/routers/dogsitters-finder/json/register/error.json +++ b/server/routers/dogsitters-finder/json/register/error.json @@ -1,3 +1,5 @@ { - "error": "Пользователь с таким номером телефона уже существует" + "message": "Такой пользователь уже был зарегистрирован", + "error": "Unauthorized", + "statusCode": 401 } \ No newline at end of file diff --git a/server/routers/dogsitters-finder/json/register/owner.success.json b/server/routers/dogsitters-finder/json/register/owner.success.json index 2193e4d..3012289 100644 --- a/server/routers/dogsitters-finder/json/register/owner.success.json +++ b/server/routers/dogsitters-finder/json/register/owner.success.json @@ -1,9 +1,3 @@ { - "data": { - "id": 6, - "phoneNumber": 89888888888, - "firstName": "Генадий", - "secondName": "Паровозов", - "role": "owner" - } + "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6Niwicm9sZSI6Im93bmVyIiwiaWF0IjoxNTE2MjM5MDIyfQ.qgOhk9tNcaMRbarRWISTgvGx5Eq_X8fcA5lhdVs2tQI" } \ No newline at end of file diff --git a/server/routers/dogsitters-finder/json/role/dogsitter.success.json b/server/routers/dogsitters-finder/json/role/dogsitter.success.json new file mode 100644 index 0000000..2922ca7 --- /dev/null +++ b/server/routers/dogsitters-finder/json/role/dogsitter.success.json @@ -0,0 +1,4 @@ +{ + "id": 1, + "role": "dogsitter" +} \ No newline at end of file diff --git a/server/routers/dogsitters-finder/json/role/error.json b/server/routers/dogsitters-finder/json/role/error.json new file mode 100644 index 0000000..a9e44ab --- /dev/null +++ b/server/routers/dogsitters-finder/json/role/error.json @@ -0,0 +1,5 @@ +{ + "message": "Неверный jwt token", + "error": "Forbidden", + "statusCode": 403 +} diff --git a/server/routers/dogsitters-finder/json/role/owner.success.json b/server/routers/dogsitters-finder/json/role/owner.success.json new file mode 100644 index 0000000..5f2f19c --- /dev/null +++ b/server/routers/dogsitters-finder/json/role/owner.success.json @@ -0,0 +1,4 @@ +{ + "id": 3, + "role": "owner" +} \ No newline at end of file -- 2.45.2