37 lines
1.5 KiB
JavaScript
Executable File
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; |