File: /var/www/javago-api-updates/src/middleware/auth.middleware.js
import jwt from "jsonwebtoken";
import { config } from "../config/config.js";
import * as authService from "../services/auth/auth.services.js";
export async function verifyToken(req, res, next) {
let token = req.headers["x-access-token"];
if (!token) {
return res.status(501).send({
status: 501,
message: "No token provided.",
});
} else {
jwt.verify(token, config.jwt_encryption, async function (error, response) {
if (error) {
return res.status(403).send({
status: 403,
message: "Session expired, please login again. ",
});
} else {
let userDetails = await authService.findById(response);
if (userDetails != null) {
if (userDetails.is_verified != 1) {
return res.status(403).send({
status: 403,
message: "User not verified, please login again. ",
});
} else if (
userDetails.is_active == 0 ||
userDetails.is_deleted == 1
) {
return res.status(403).send({
status: 403,
message: "User is Deactivated. ",
});
} else {
req.user_id = userDetails.id
req.userData = userDetails
next();
}
} else {
return res.status(403).send({
status: 403,
message: "Account doesn't exist.",
});
}
}
});
}
}