From caaa5e2d827c5e134b05ce19638acb786750c1a9 Mon Sep 17 00:00:00 2001 From: Mathias Wagner Date: Tue, 27 Dec 2022 15:08:39 +0100 Subject: [PATCH] Created the authentication route --- server/routes/auth.js | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 server/routes/auth.js diff --git a/server/routes/auth.js b/server/routes/auth.js new file mode 100644 index 0000000..6187aaf --- /dev/null +++ b/server/routes/auth.js @@ -0,0 +1,22 @@ +const app = require('express').Router(); +const jwt = require('jsonwebtoken'); +const {validateSchema} = require("../util/validate"); +const {authValidation} = require("../validations/auth"); +const {getToken} = require("../controller/token"); +const {authUser} = require("../controller/user"); + +app.post("/login", async (req, res) => { + const error = await validateSchema(authValidation, req.body); + if (error) return res.status(400).json({message: error}); + + let user = await authUser(req.body.username, req.body.password); + if (!user) return res.status(401).json({message: "Please use the correct username / password combination"}); + + const token = jwt.sign({userId: user.id}, getToken()); + + res.header("Authorization", token); + + res.json({message: "Successfully logged in"}); +}); + +module.exports = app; \ No newline at end of file