JSFiddle - React, Tailwind, and code Playground

Solution for Expiry issue we faced yesterday May 31, 2017 around 8:00 pm

by Nalin Sajwan

JavaScript

// Example date of fiddle -> https://jsfiddle.net/NalinS/njoj4m20/
// var currentDate = new Date("Wed May 31 2017 19:59:06 GMT+0530");

// Possible login scenario date. 1 hour and 1 second left in license login expiry.
var currentDate = new Date("2017-12-31T13:12:49.585+0000");

// Copy of currentDate.
var expiryDate = new Date(currentDate);

// License login expiry date.
var licenseExpiry = new Date("2017-12-31T14:12:50.585+0000");

// Expiry time assigned per token.
var tokenExpiryLimit = 120; // In Minutes

console.log("\ncurrentDate ==> ", currentDate.toString());
console.log("currentDate iso ==> ", currentDate.toISOString());

console.log("\nexpiryDate ==> ", expiryDate.toString());
console.log("expiryDate iso ==> ", expiryDate.toISOString());

console.log("\nlicenseExpiry ==> ", licenseExpiry.toString());
console.log("licenseExpiry iso ==> ", licenseExpiry.toISOString());

var possibleExpiryDate = new Date( expiryDate.setMinutes(currentDate.getMinutes() + tokenExpiryLimit) );

console.log("\npossibleExpiryDate ==> ", possibleExpiryDate.toString());
console.log("possibleExpiryDate iso ==> ", possibleExpiryDate.toISOString());

var expiryToBeExceeded = false;

if (currentDate >= licenseExpiry) {
	console.log("\nLogin has expired already");

	tokenExpiryLimit = 0;
} else if (possibleExpiryDate > licenseExpiry) {

	console.log("\nLogin will expire before token expiry");

	expiryToBeExceeded = true;
} else {
	console.log("\nLogin will not expire before token expiry, Do nothing");
}

console.log("\nexpiryToBeExceeded ==> ", expiryToBeExceeded);

if(expiryToBeExceeded) {
	expiryDate = new Date(licenseExpiry);
} else {
	expiryDate.setMinutes(currentDate.getMinutes() + tokenExpiryLimit);
}

console.log("\n\n[Final] currentDate ==> ", currentDate.toString());
console.log("\n[Final] licenseExpiry ==> ", licenseExpiry.toString());
console.log("\n[Final] expiryDate ==> ", expiryDate.toString());