made logout and lowercase unsensetive login

This commit is contained in:
2025-04-17 13:40:06 +02:00
parent e7e225bbe9
commit a2d66047ab
2 changed files with 39 additions and 6 deletions
+18 -1
View File
@@ -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
}
]
+20 -4
View File
@@ -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." });
});