From 1c8a64c0c0946ff604d8801a2a6ce0ec2b4a5344 Mon Sep 17 00:00:00 2001 From: C4 Patino Date: Sat, 5 Mar 2022 15:17:59 -0600 Subject: [PATCH] Created token authentication --- server/middleware/tokenAuth.js | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/server/middleware/tokenAuth.js b/server/middleware/tokenAuth.js index e69de29..54f3ab4 100644 --- a/server/middleware/tokenAuth.js +++ b/server/middleware/tokenAuth.js @@ -0,0 +1,28 @@ +const Token = require('../models/Token'); + +async function tokenAuth(req, res, next) { + const token = req.query.token || req.body.token; + + if (!token) { + return res.status(403).send('Unauthorized user'); + } + + const result = await Token.findOne({ where: { tokenID: token } }); + + const date = new Date(); + if ( + !result || + (token.expires == true && + date.setDate(date.getDate + 1) > result.createdAt) + ) { + await Token.destroy({ where: { tokenID: token } }); + return res.status(511).send('Session expired'); + } + + const user = await result.getUser(); + req.user = user; + + return next(); +} + +module.exports = tokenAuth;