aboutsummaryrefslogtreecommitdiff
path: root/src/auth.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/auth.js')
-rw-r--r--src/auth.js27
1 files changed, 27 insertions, 0 deletions
diff --git a/src/auth.js b/src/auth.js
new file mode 100644
index 0000000..f907e6c
--- /dev/null
+++ b/src/auth.js
@@ -0,0 +1,27 @@
1const jwt = require("jsonwebtoken");
2const { JWT_KEY } = require("./");
3
4function authenticateToken(req, res, next) {
5 if (!req.cookies || !req.cookies.auth_token) {
6 return res.redirect("/login");
7 }
8
9 const token = req.cookies.auth_token;
10
11 // If no token, deny access
12 if (!token) {
13 return res.redirect(
14 `/login?redirect=${encodeURIComponent(req.originalUrl)}`,
15 );
16 }
17
18 try {
19 const user = jwt.verify(token, JWT_KEY);
20 req.user = user;
21 next();
22 } catch (error) {
23 res.redirect(`/login?redirect=${encodeURIComponent(req.originalUrl)}`);
24 }
25}
26
27module.exports = { authenticateToken };