-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmiddleware.js
37 lines (32 loc) · 968 Bytes
/
middleware.js
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
28
29
30
31
32
33
34
35
36
37
require("dotenv").config();
let jwt = require("jsonwebtoken");
// adapted from https://medium.com/dev-bits/a-guide-for-adding-jwt-token-based-authentication-to-your-single-page-nodejs-applications-c403f7cf04f4
let checkToken = (req, res, next) => {
let token = req.headers["x-access-token"] || req.headers["authorization"]; // Express headers are auto converted to lowercase
if (token) {
//console.log(token)
if (token.startsWith("Bearer ")) {
// Remove Bearer from string
token = token.slice(7, token.length);
}
jwt.verify(token, process.env.SECRET, (err, decoded) => {
if (err) {
return res.json({
success: false,
message: "Token is not valid"
});
} else {
req.decoded = decoded;
next();
}
});
} else {
return res.json({
success: false,
message: "Auth token is not supplied"
});
}
};
module.exports = {
checkToken: checkToken
};