Login works somehow

This commit is contained in:
2025-04-17 09:24:19 +02:00
parent faf76e96ee
commit b8e53c1eb0
2 changed files with 27 additions and 9 deletions
+18 -8
View File
@@ -36,7 +36,11 @@ function generateAccessToken(user) {
} }
function authenticateToken(request, response, next) { function authenticateToken(request, response, next) {
const authHeader = request.headers["authorization"]; /* #swagger.security = [{
"bearerAuth": []
}] */
const authHeader = request.headers.authorization;
console.log(authHeader);
const token = authHeader && authHeader.split(" ")[1]; const token = authHeader && authHeader.split(" ")[1];
if (token == null) return response.sendStatus(401); if (token == null) return response.sendStatus(401);
@@ -56,9 +60,9 @@ function authenticateToken(request, response, next) {
} }
app.post("/register", (request, response) => { app.post("/register", (request, response) => {
const { username } = request.body; const { username, password } = request.body;
if (!username) if (!username && !password)
return response.status(400).json({ error: "Username is required" }); return response.status(400).json({ error: "Username and password are required" });
const users = get_data(); const users = get_data();
if (users.some(u => u.username === username)) { if (users.some(u => u.username === username)) {
@@ -66,20 +70,23 @@ app.post("/register", (request, response) => {
} }
const token = generateAccessToken({ username }); const token = generateAccessToken({ username });
saveUser({ username, token }); saveUser({ username, password, token });
response.json({ username, token }); response.json({ username, token });
}); });
app.post("/login", (request, response) => { app.post("/login", (request, response) => {
const { username } = request.body; const { username, password } = request.body;
if (!username) if (!username && !password)
return response.status(400).json({ error: "Username is required" }); return response.status(400).json({ error: "Username and password are required" });
const users = get_data(); const users = get_data();
const user = users.find(u => u.username === username); const user = users.find(u => u.username === username);
if (!user) return response.status(401).json({ error: "Invalid credentials" }); if (!user) return response.status(401).json({ error: "Invalid credentials" });
if (user.password !== password) {
response.status(401).json({ error: "Invalid password" });
}
const token = generateAccessToken({ username }); const token = generateAccessToken({ username });
user.token = token; user.token = token;
@@ -89,6 +96,9 @@ app.post("/login", (request, response) => {
}); });
app.get("/", authenticateToken, (request, response) => { app.get("/", authenticateToken, (request, response) => {
/* #swagger.security = [{
"bearerAuth": []
}] */
response.sendFile(path.join(__dirname, "structure.png")); response.sendFile(path.join(__dirname, "structure.png"));
}); });
+9 -1
View File
@@ -5,7 +5,15 @@ const doc = {
title: 'GAMBLE!', title: 'GAMBLE!',
description: 'Gambling API' description: 'Gambling API'
}, },
host: 'localhost:3000' host: 'localhost:3000',
components: {
securitySchemes:{
bearerAuth: {
type: 'http',
scheme: 'bearer'
}
}
}
}; };
const outputFile = './swagger.json'; const outputFile = './swagger.json';