Files
gps-backend/middleware/AuthDriverMiddleware.js
2025-05-29 08:59:40 +00:00

37 lines
1.5 KiB
JavaScript
Executable File

const Helper = require('../library/LibHelper');
const DriversModels = require('../models/DriversModels');
const LibJwt = require('../library/LibJwt');
const response = require('../config/response');
class AuthDriverMiddleware {
static async initialize(req, res, next) {
let apiRes = {};
try {
const tokenData = await LibJwt.verifyToken(req.headers['x-api-key']);
if (tokenData.type !== 'success') {
apiRes = JSON.parse(JSON.stringify(response[401]));
apiRes.meta.message += Helper.setErrMsg(': ' + tokenData.message);
return res.status(200).json(apiRes);
}
const phoneDevice = await DriversModels.getDeviceByImei(tokenData.data.device_id);
if (phoneDevice.length < 1) {
apiRes = JSON.parse(JSON.stringify(response[401]));
apiRes.meta.message += Helper.setErrMsg(': your session has expired');
return res.status(200).json(apiRes);
}
if (phoneDevice[0].is_login !== DriversModels.IS_LOGIN) {
apiRes = JSON.parse(JSON.stringify(response[401]));
apiRes.meta.message += Helper.setErrMsg(': your session has expired');
return res.status(200).json(apiRes);
}
req.auth = JSON.parse(JSON.stringify(tokenData.data));
next();
} catch (e) {
apiRes = JSON.parse(JSON.stringify(response[401]));
apiRes.meta.message += Helper.setErrMsg(': ' + e.message);
return res.status(200).json(apiRes);
}
}
}
module.exports = AuthDriverMiddleware.initialize;