I got caught on this error so I hope you can help me.
I am trying to validate the JWT (JSON Web Token) before I process the information so I can avoid if the token is invalid, if it doesn't exist, if it's expired or if it was used already.
Everything works fine but i got this warning on console
UnhandledPromiseRejectionWarning: Error [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client
here is my code
try {
const token = req.header("Authorization")
if (!token)
return res.formatter.unauthorized("No existe el token");
let verified = {}
jwt.verify(getAccessToken(token), process.env.JWT_SECRET, (err, verifiedJWT) => {
if(err){
if(err.message === "jwt expired"){
return res.formatter.unauthorized('Token expired');
}
}else{
verified = verifiedJWT;
}
});
if (!verified)
return res.formatter.unauthorized("Invalid token");
const tokenInvalid = await TokensInvalid.findOne({ tokenInvalid: token });
if (tokenInvalid)
return res.formatter.unauthorized('Token already used');
req.token = token;
req.user = verified.user;
next();
} catch (err) {
return res.formatter.serverError(err.message)
}
};```
Hope you can support me. Thank you all!