aboutsummaryrefslogtreecommitdiff
path: root/src/auth.js
blob: f907e6c2620b403cd6d81ab3d2276a5efd298dbb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
const jwt = require("jsonwebtoken");
const { JWT_KEY } = require("./");

function authenticateToken(req, res, next) {
	if (!req.cookies || !req.cookies.auth_token) {
		return res.redirect("/login");
	}

	const token = req.cookies.auth_token;

	// If no token, deny access
	if (!token) {
		return res.redirect(
			`/login?redirect=${encodeURIComponent(req.originalUrl)}`,
		);
	}

	try {
		const user = jwt.verify(token, JWT_KEY);
		req.user = user;
		next();
	} catch (error) {
		res.redirect(`/login?redirect=${encodeURIComponent(req.originalUrl)}`);
	}
}

module.exports = { authenticateToken };