changed project struture.

Also addded a functional JWT token service.

Also added user react frontend
This commit is contained in:
2025-07-23 11:59:59 +02:00
parent 2b4b554c24
commit d552f40c2d
52 changed files with 3807 additions and 31 deletions

View File

@@ -6,24 +6,23 @@ env.config();
const secret = new TextEncoder().encode(process.env.SECRET_KEY);
export async function generateToken(payload) {
return await new SignJWT(payload)
const newToken = await new SignJWT(payload)
.setProtectedHeader({ alg: "HS256" })
.setIssuedAt()
.setExpirationTime("2h") // Token valid for 2 hours
.sign(secret);
console.log("Generated token: ", newToken);
return newToken;
}
export async function authenticate(req, res, next) {
const token = req.cookies.token;
const authHeader = req.headers["authorization"];
const token = authHeader && authHeader.split(" ")[1]; // Bearer <token>
if (!token) return res.status(401).send("No token provided");
if (token == null) return res.sendStatus(401); // No token present
try {
const { payload } = await jwtVerify(token, secret);
req.user = payload;
next();
} catch (e) {
console.log("TOKEN SERVICE ERROR: ", e)
return res.status(403).send("Invalid or expired token");
}
const { payload } = await jwtVerify(token, secret);
req.user = payload;
next();
}