diff --git a/code/backend/src/controllers/userController.ts b/code/backend/src/controllers/userController.ts index 5813f21..7c384f5 100644 --- a/code/backend/src/controllers/userController.ts +++ b/code/backend/src/controllers/userController.ts @@ -37,6 +37,7 @@ export const registerUser = async (req: Request, res: Response) => { error: "Invalid data", details: [{ message: `User "${username}" already exists` }], }); + return; } const hashedPassword = await bcrypt.hash(password, 10); // hash the password with bcrypt if (!hashedPassword) { @@ -45,6 +46,7 @@ export const registerUser = async (req: Request, res: Response) => { error: "Invalid data", details: [{ message: "Server Error" }], }); + return; } const userData = { // create a new user object with the data from the request body and the hashed password @@ -59,6 +61,7 @@ export const registerUser = async (req: Request, res: Response) => { error: "Server error", details: [{ message: "Server Error while creating user" }], }); + return; } const token: string = generateAccessToken(user.username, user.id); // generate a JWT token with the username and userId as payload res.set("Authorization", `Bearer ${token}`); // set the token in the response header @@ -77,6 +80,7 @@ export const loginUser = async (req: Request, res: Response) => { error: "Invalid data", details: [{ message: "Username and password are required" }], }); + return; } const user = await prisma.user.findUnique({ // check if the user exists @@ -86,7 +90,12 @@ export const loginUser = async (req: Request, res: Response) => { }); if (!user) { // if the user does not exist, return an error message - res.status(400).json({ message: `User "${username}" not found` }); + res + .status(400) + .json({ + error: "user not found", + details: [{ message: `User "${username}" not found` }], + }); return; } const isPasswordValid = await bcrypt.compare(password, user.password); // compare the password with the hashed password in the database @@ -96,6 +105,7 @@ export const loginUser = async (req: Request, res: Response) => { error: "invalid credentials", details: [{ message: "Invalid password" }], }); + return; } const token: string = generateAccessToken(user.username, user.id); // generate a JWT token with the username and userId as payload res.set("Authorization", `Bearer ${token}`); // set the token in the response header @@ -110,6 +120,7 @@ export const getUser = async (req: Request, res: Response) => { error: "no username", details: [{ message: "Username is required" }], }); + return; } const user = await prisma.user.findUnique({ where: { diff --git a/code/backend/src/middleware/authenticateToken.ts b/code/backend/src/middleware/authenticateToken.ts index a0d6eee..ba5c856 100644 --- a/code/backend/src/middleware/authenticateToken.ts +++ b/code/backend/src/middleware/authenticateToken.ts @@ -32,24 +32,25 @@ export function authenticateToken() { else { jwt.verify(token, JWT_SECRET, (err: any, user: any) => { // verify the token with the secret - console.log(err); + if (err) { - if (err instanceof TokenExpiredError) + if (err instanceof TokenExpiredError) { // check if the error is expired and return 401 - res - .status(401) - .json({ - error: "Token expired", - details: [{ message: "Token expired" }], - }); + res.status(401).json({ + error: "Token expired", + details: [{ message: "Token expired" }], + }); + return; + } + // if the token is invalid, return 403 Forbidden - else - res - .status(403) - .json({ - error: "Invalid token", - details: [{ message: "Invalid token" }], - }); + else { + res.status(403).json({ + error: "Invalid token", + details: [{ message: "Invalid token" }], + }); + return; + } } next(); }); diff --git a/code/backend/src/middleware/validationMiddleware.ts b/code/backend/src/middleware/validationMiddleware.ts index f1447e8..ed307e8 100644 --- a/code/backend/src/middleware/validationMiddleware.ts +++ b/code/backend/src/middleware/validationMiddleware.ts @@ -16,10 +16,12 @@ export function validateData(schema: z.ZodObject) { res .status(StatusCodes.BAD_REQUEST) .json({ error: "Invalid data", details: errorMessages }); + return; } else { res .status(StatusCodes.INTERNAL_SERVER_ERROR) .json({ error: "Internal Server Error" }); + return; } } };