HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux ip-10-0-8-47 6.8.0-1021-aws #23~22.04.1-Ubuntu SMP Tue Dec 10 16:31:58 UTC 2024 aarch64
User: ubuntu (1000)
PHP: 8.1.2-1ubuntu2.22
Disabled: NONE
Upload Files
File: /var/www/api.javaapp.co.uk_old/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.",
          });
        }
      }
    });
  }
}