| Current Path : /var/node/inatote/Inatote-Backend/helpers/ |
| Current File : /var/node/inatote/Inatote-Backend/helpers/verify-middleware.js |
import config from '../config.js'
import jwt from 'jsonwebtoken';
import logger from "../services/logService.js";
function infoLogs(req , res) {
let msg = `\n*********${req.method}*${req.originalUrl}********************************************************************************
\n ${JSON.stringify(req.body)}
\n **********************************************************************************************************************************`;
logger.infologger.info(msg)
}
export default function verify(req, res, next) {
let cookies = req.headers.cookies;
infoLogs(req , res)
if(!cookies) return res.status(403).json({
success : false,
errorMessage : "Token Cookies are required for security"
})
let splitCookie = cookies.split('=')
let accessToken = undefined;
for (var i = 0; i < splitCookie.length; i++) {
if (splitCookie[i] == "token") {
if (splitCookie.length > i + 1) {
accessToken = splitCookie[i+1];
break;
}
}
}
if (!accessToken) {
return res.status(403).send()
}
// let accessToken = authHeader.split(' ')[1];
// //console.log(accessToken)
let payload
try {
//use the jwt.verify method to verify the access token
//throws an error if the token has expired or has a invalid signature
payload = jwt.verify(accessToken, config.app.secret)
req.user = payload.data;
next()
}
catch (e) {
//if an error occured return request unauthorized error
console.log(e);
return res.status(401).send({
"errorMessage": "Unauthorized",
"statusCode": 401
})
}
}