From a2d66047ab9ca06a3b4fb0763234fd714e1e069e Mon Sep 17 00:00:00 2001 From: ScriptSorcerer20 Date: Thu, 17 Apr 2025 13:40:06 +0200 Subject: [PATCH] made logout and lowercase unsensetive login --- data.json | 21 +++++++++++++++++++-- gambling.js | 24 ++++++++++++++++++++---- 2 files changed, 39 insertions(+), 6 deletions(-) diff --git a/data.json b/data.json index 41b42e6..80c3487 100644 --- a/data.json +++ b/data.json @@ -1,3 +1,20 @@ [ - -] + { + "username": "jerome", + "password": "Sigma", + "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJsb3dlcl91c2VybmFtZSI6Implcm9tZSIsImlhdCI6MTc0NDg4OTY3MSwiZXhwIjoxNzQ0ODkxNDcxfQ.zYg3uxh_iNZ2xdEma8p3p-URT3Xa7wnYiQyOx0-QTac", + "money": 200 + }, + { + "username": "Gianimon", + "password": "gianimon", + "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6IkdpYW5pbW9uIiwiaWF0IjoxNzQ0ODc0NTczLCJleHAiOjE3NDQ4NzYzNzN9.dGp5WTKIDVhomKZ8J7nevz8O7PqwRhR9wEgeyDtL_XE", + "money": 200 + }, + { + "username": "any", + "password": "any", + "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6ImFueSIsImlhdCI6MTc0NDg4OTk1OSwiZXhwIjoxNzQ0ODkxNzU5fQ.TA6BA09DQlmUqEzQxD_wF0r-VyqCMccoxq8SxPnB9-4", + "money": 200 + } +] \ No newline at end of file diff --git a/gambling.js b/gambling.js index cccde04..3c6a661 100644 --- a/gambling.js +++ b/gambling.js @@ -62,7 +62,9 @@ function authenticateToken(request, response, next) { } app.post("/register", (request, response) => { - const { username, password } = request.body; + let { username, password } = request.body; + username = username.toLowerCase(); + if (!username && !password) return response.status(400).json({ error: "Username and password are required" }); @@ -71,18 +73,18 @@ app.post("/register", (request, response) => { return response.status(400).json({ error: "Username already exists" }); } - const token = generateAccessToken({ username }); saveUser({ username, password, token, "money": 200 }); - response.json({ username, token }); + response.json({ lower_username, token }); }); app.get("/login", (request, response) => { response.sendFile(path.join(__dirname, ".\\public\\login.html")); }) app.post("/login", (request, response) => { - const { username, password } = request.body; + let { username, password } = request.body; + username = username.toLowerCase(); if (!username && !password) return response.status(400).json({ error: "Username and password are required" }); @@ -129,13 +131,27 @@ app.post("/verify", authenticateToken, (request, response) => { }); app.delete("/logout", authenticateToken, (request, response) => { + /* #swagger.security = [{ + "bearerAuth": [] + }] */ const username = request.user.username; const users = get_data(); const user = users.find(u => u.username === username); + + // 1) Clear the HttpOnly cookie in the browser + response.clearCookie("token", { + httpOnly: true, + secure: process.env.NODE_ENV === "production", + sameSite: "Strict" + }); + + // 2) Delete the token from your JSON store if (user) { delete user.token; save_data(users); } + + // 3) Send final response response.json({ message: "Logged out successfully." }); });