From fa7dd5a3523620c1a6fca5120fc25d8adb09fd47 Mon Sep 17 00:00:00 2001 From: Mathias Wagner Date: Tue, 27 Dec 2022 15:06:13 +0100 Subject: [PATCH] Created the authentication middleware --- server/middlewares/authenticate.js | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 server/middlewares/authenticate.js diff --git a/server/middlewares/authenticate.js b/server/middlewares/authenticate.js new file mode 100644 index 0000000..7e697fb --- /dev/null +++ b/server/middlewares/authenticate.js @@ -0,0 +1,15 @@ +const {validateSession} = require("../controller/session"); +const {getUserById} = require("../controller/user"); + +module.exports = async (req, res, next) => { + const token = req.header("Authorization")?.split(" "); + if (!token) return res.status(400).json({message: "You need to provide a token"}); + if (!(token.length === 2 && token[0] === "Bearer")) return res.status(400).json({message: "You need to provide a bearer token"}); + + const user = await validateSession(token[1]); + if (user === null) return res.status(401).json({message: "The provided token is incorrect"}); + + req.user = await getUserById(user.userId); + + next(); +} \ No newline at end of file