dt_expressapp/app/controllers/jwt_controller.js
bitbucket ec8f48efda GWM
2024-06-28 15:27:34 +05:30

194 lines
8.8 KiB
JavaScript

const { MacModel } = require('../models')
const {logMsg} = require('../services/logger')
const secretKeyJwt = process.env.SECRETKEY;
const { info, log } = require('winston');
const moment = require('moment');
const Cryptr = require('cryptr');
module.exports.addMacValue= async(req, res, next)=>{
try {
const cryptr = new Cryptr('7B-q;Vn@oGc^aPtk:0QP/SyDoHw!,(L2{2uZP&jZw5l]*>s~,%Z+kaD1tloQU', { encoding: 'base64', pbkdf2Iterations: 10000, saltLength: 5 });
let {key, mac_id, company_name, app_version} = req.body
key = cryptr.decrypt(key);
mac_id = cryptr.decrypt(mac_id);
company_name = cryptr.decrypt(company_name);
app_version = cryptr.decrypt(app_version);
const mac = await MacModel.findOne({where:{licency_key: key},raw:true});
console.log(mac);
//Check License Key IN DB
if (mac && mac.licency_key == key)
{
//Check isActive and App Version are Same
if (mac.isActive == false && mac.app_version.charAt(0) == app_version.charAt(0) ) {
today = moment().format('YYYY/MM/DD');
if(mac.expiry_type == 'TRAIL'){
after10days = moment().add(10, 'day');
formatedDate = after10days.format('YYYY/MM/DD');
}else if(mac.expiry_type == 'ONEYR'){
after1year = moment().add(1, 'year');
formatedDate = after1year.format('YYYY/MM/DD');
}else if(mac.expiry_type == 'LYFT'){
after20year = moment().add(20, 'year');
formatedDate = after20year.format('YYYY/MM/DD');
}
const info={
mac_id: mac_id,
company_name: company_name,
activation_date: today,
expiry_date : formatedDate,
isActive : true,
}
const macUpdate = await MacModel.update(info, {where:{id: mac.id}});
if (macUpdate) {
logMsg.info({status:200,message:"Your license has been successfully activated. ", data: { expiry_date : cryptr.encrypt(formatedDate), expiry_type : cryptr.encrypt(mac.expiry_type) }});
res.send({status:200,message:"Your license has been successfully activated. ", data: { expiry_date : cryptr.encrypt(formatedDate), expiry_type : cryptr.encrypt(mac.expiry_type) }})
}
} else {
if (mac.isActive == true && mac.app_version.charAt(0) == app_version.charAt(0) && mac_id == mac.mac_id )
{
today = moment().format('YYYY/MM/DD');
formatedDate = mac.expiry_date;
if(formatedDate > today){
const info={
mac_id: mac_id,
company_name: company_name,
activation_date: today,
expiry_date : formatedDate,
isActive : true,
}
const macUpdate = await MacModel.update(info, {where:{id: mac.id}});
if (macUpdate) {
logMsg.info({status:200,message:"Your license has been successfully activated.", data: { expiry_date : cryptr.encrypt(formatedDate), expiry_type : cryptr.encrypt(mac.expiry_type) }});
res.send({status:200,message:" Your license has been successfully activated.", data: { expiry_date : cryptr.encrypt(formatedDate), expiry_type : cryptr.encrypt(mac.expiry_type) }})
}
}else{
logMsg.info({status:404,message:"Please check the license key and try again. For further assistance, contact our support team.", data: "No Data"});
res.send({status:404,message:"Please check the license key and try again. For further assistance, contact our support team.", data: "No Data"})
}
}else{
logMsg.info({status:404,message:"The license key you provided is not valid. Please check the license key and try again. For further assistance, contact our support team.", data: "No Data"});
res.send({status:404,message:"The license key you provided is not valid. Please check the license key and try again. For further assistance, contact our support team.", data: "No Data"})
}
}
}else{
logMsg.info({status:404,message:"The license key you provided is not valid. Please check the license key and try again. For further assistance, contact our support team.", data: "No Data"});
res.send({status:404,message:"The license key you provided is not valid. Please check the license key and try again. For further assistance, contact our support team.", data: "No Data"})
}
} catch (error) {
logMsg.info("addMacValue ->Internal Server Error!", error);
console.error(error);
res.status(404).send('addMacValue ->Internal Server Error!', error);
}
}
module.exports.encryptLicenseKey= async(req, res, next)=>{
const cryptr = new Cryptr('myTotallySecretKey', { saltLength: 5 });
//const encryptedString = cryptr.encrypt('Gowtham');
const decryptedString = cryptr.decrypt('cf1496215367f9713a67c81c6c22c5409f46ea5b0be610cf60f5b8717aac8ac1691c05e6d68b2178a9e4ce1f');
res.send({decryptedString:decryptedString});
};
module.exports.decryptLicenseKey= async(req, res, next)=>{
const algorithm = 'aes-256-cbc';
const key = crypto.randomBytes(32);
const iv = crypto.randomBytes(16);
const decipher = crypto.createDecipheriv(algorithm, '51 70 c0 16 42 ef 9a 13 2e e6 9d d0 b0 02 cf 1e c2 31 dd 04 7e 77 cc 5d aa ea 72 5a cb c8 4a b9', '7e 4e c7 f6 a3 27 ac 0f 4f c9 d8 19 0a 36 de f0');
let decrypted = decipher.update(req.query.encrypted_value, 'hex', 'utf8');
decrypted += decipher.final('utf8');
res.send({decrypted:decrypted});
};
// var expiryDate = new Date(mac.expiry_date);
// //Check expired or not!
// if (expiryDate > new Date()) {
// const info={
// licency_key: key,
// company_name: company_name,
// activation_date:today,
// expiry_date:nextFiscalYearEndDate,
// }
// logMsg.info({status:404,message:" Your Mac is Already Activated!", data: info});
// res.send({status:404,message:" Your Mac is Already Activated!", data: info});
// } else {
// logMsg.info({status:404,message:" Product Expired!", data: "No Data!"});
// res.send({status:404,message:" Product Expired!", data: "No Data!"});
// }
// const macId = JSON.parse(mac.mac_id);
// var DBData= [];
// macId.forEach(function(macid) {
// DBData.push(macid.mac)
// });
// var BodyData = [];
// var BodyValue = req.body.mac_id;
// BodyValue.forEach(function(body) {
// BodyData.push(body.mac)
// });
// function hasCommonElement(arr1, arr2) {
// for (let element of arr1) {
// if (arr2.includes(element)) {
// return true;
// }
// }
// return false;
// }
// const isMatch = hasCommonElement(DBData, BodyData);
// if (isMatch) {
// const info={
// licency_key:req.body.key,
// mail: req.body.mail,
// company_name:req.body.company_name,
// activation_date:today,
// expiry_date:nextFiscalYearEndDate,
// }
// logMsg.info({status:200,message:" Your Mac is Already Activated!", data: info});
// res.send({status:200,message:" Your Mac is Already Activated!", data: info});
// } else {
// logMsg.info({status:404,message:" Your Mac is Not Match!", data: "No Data!"});
// res.send({status:404,message:" Your Mac is Not Match!", data: "No Data!"});
// }