made logout and lowercase unsensetive login
This commit is contained in:
@@ -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
@@ -62,7 +62,9 @@ function authenticateToken(request, response, next) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
app.post("/register", (request, response) => {
|
app.post("/register", (request, response) => {
|
||||||
const { username, password } = request.body;
|
let { username, password } = request.body;
|
||||||
|
username = username.toLowerCase();
|
||||||
|
|
||||||
if (!username && !password)
|
if (!username && !password)
|
||||||
return response.status(400).json({ error: "Username and password are required" });
|
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" });
|
return response.status(400).json({ error: "Username already exists" });
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
const token = generateAccessToken({ username });
|
const token = generateAccessToken({ username });
|
||||||
saveUser({ username, password, token, "money": 200 });
|
saveUser({ username, password, token, "money": 200 });
|
||||||
|
|
||||||
response.json({ username, token });
|
response.json({ lower_username, token });
|
||||||
});
|
});
|
||||||
|
|
||||||
app.get("/login", (request, response) => {
|
app.get("/login", (request, response) => {
|
||||||
response.sendFile(path.join(__dirname, ".\\public\\login.html"));
|
response.sendFile(path.join(__dirname, ".\\public\\login.html"));
|
||||||
})
|
})
|
||||||
app.post("/login", (request, response) => {
|
app.post("/login", (request, response) => {
|
||||||
const { username, password } = request.body;
|
let { username, password } = request.body;
|
||||||
|
username = username.toLowerCase();
|
||||||
if (!username && !password)
|
if (!username && !password)
|
||||||
return response.status(400).json({ error: "Username and password are required" });
|
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) => {
|
app.delete("/logout", authenticateToken, (request, response) => {
|
||||||
|
/* #swagger.security = [{
|
||||||
|
"bearerAuth": []
|
||||||
|
}] */
|
||||||
const username = request.user.username;
|
const username = request.user.username;
|
||||||
const users = get_data();
|
const users = get_data();
|
||||||
const user = users.find(u => u.username === username);
|
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) {
|
if (user) {
|
||||||
delete user.token;
|
delete user.token;
|
||||||
save_data(users);
|
save_data(users);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 3) Send final response
|
||||||
response.json({ message: "Logged out successfully." });
|
response.json({ message: "Logged out successfully." });
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user