Login works somehow
This commit is contained in:
+18
-8
@@ -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
@@ -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';
|
||||||
|
|||||||
Reference in New Issue
Block a user