Viewing File: /home/ubuntu/efiexchange-node-base/src/middleware/walletApp.middleware.ts
import { NextFunction, Request, Response } from "express";
import jwt from "jsonwebtoken";
import config from "config";
import logger from "../utils/logger";
const { makeDb } = require('mysql-async-simple');
const mysql = require("mysql");
let connection = mysql.createConnection({
host: config.get("DB_HOST"),
database: config.get("DB_DATABASE"),
user: config.get("DB_USER"),
password: config.get("DB_PASSWORD")
});
const db = makeDb();
db.connect(connection);
export async function walletAppAuthRequest(req: any, res: any, next: NextFunction) {
try {
const token = req.body.token || req.query.token || req.headers["x-access-token"];
const id = req.body.id;
if (!id) {
return res.sendError("ID is required for authentication", 1000);
}
if (!token) {
return res.sendError("A token is required for authentication", 1000);
}
try {
let user = await db.query(connection, `SELECT * FROM users WHERE id = '${id}'`);
if (user.length <= 0) {
return res.sendError("User details not found", 1002);
}
user = user.length > 0 ? user[0] : {};
if (user.token != token) {
return res.sendError("Invalid Token", 1001);
}
if (user.token_expiry < Math.floor(Date.now()/1000)) {
return res.sendError("Loggin session expired", 1003);
}
} catch (err) {
return res.sendError("Invalid Token", 1004);
}
return next();
} catch (ex) {
return res.sendError(ex.message, 200);
}
}
Back to Directory
File Manager