Your IP : 216.73.216.91


Current Path : /var/node/inatote/Inatote-Backend/helpers/
Upload File :
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
        })
    }
}