const user = "timeControl"; function confirmReset() { $(".confirm").removeClass('confirmKO'); $(".txtConfirm").empty(); } function printError(msg){ confirmReset(); $(".txtConfirm").append(msg); $(".confirm").addClass('confirmKO'); $(".confirm").fadeIn(200); setTimeout(function() { $(".confirm").fadeOut(200); setTimeout(confirmReset, 200); }, 2300); } function signIn(user, password) { $.post({ urlPath: 'vnUsers/sign-in', jsonData: {user, password}, processData: false, success: function (data) { localStorage.setItem("token", data.token); localStorage.setItem("ttl", data.ttl); localStorage.setItem("password", password); localStorage.setItem("signInTime", Date.now()); }, }) } $.ajaxPrefilter(function(xhr) { const orgErrorHandler = xhr.error; const token = localStorage.getItem('token') Object.assign(xhr, { url: `api/${xhr.urlPath}`, headers: { Authorization : token }, timeout: 1000, contentType: 'application/json; charset=utf-8', dataType: 'json', processData: false, data: JSON.stringify(xhr.jsonData), error: function(xhr, textStatus, err) { if (orgErrorHandler) { try { orgErrorHandler(xhr, textStatus, err); } catch (e) { err = e; } } switch (textStatus){ case 'parsererror': mensaje = 'Requested JSON parse failed'; break; case 'timeout': mensaje = 'Time out error'; break; case 'abort': mensaje = 'Ajax request aborted'; break; case 'error': switch (xhr.status){ case 0: mensaje = 'Not connect: Verify Network'; break; case 555: mensaje = JSON.parse(xhr.statusText).Message; break; default: if (xhr.status >= 400 && xhr.status < 500) mensaje = xhr.statusText; else mensaje = 'Ha ocurrido un error, consulta con informática'; } break; default: mensaje = 'Ha ocurrido un error, consulta con informática'; } printError(mensaje); } }); }); setInterval(function() { const ttl = localStorage.getItem('ttl'); const password = localStorage.getItem('password'); if(ttl && password) { const now = Date.now(); const signInTime = localStorage.getItem('signInTime'); const countdown = now - signInTime; if(countdown < ttl) signIn(user, password) } },3600000)// 1 hour