From c38a50af34e43972520071f69933dc469df0a2ae Mon Sep 17 00:00:00 2001 From: TekH Date: Fri, 19 Sep 2025 14:58:14 +0200 Subject: [PATCH] make env.xsrfToken lazy loading - remove env.envKey --- EnvelopeGenerator.Web/Views/Shared/_Layout.cshtml | 1 - EnvelopeGenerator.Web/wwwroot/js/envelope-api.js | 8 +++++--- EnvelopeGenerator.Web/wwwroot/js/envelope-api.min.js | 2 +- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/EnvelopeGenerator.Web/Views/Shared/_Layout.cshtml b/EnvelopeGenerator.Web/Views/Shared/_Layout.cshtml index c90a0537..21cb13e3 100644 --- a/EnvelopeGenerator.Web/Views/Shared/_Layout.cshtml +++ b/EnvelopeGenerator.Web/Views/Shared/_Layout.cshtml @@ -53,7 +53,6 @@ - diff --git a/EnvelopeGenerator.Web/wwwroot/js/envelope-api.js b/EnvelopeGenerator.Web/wwwroot/js/envelope-api.js index 36dc32fd..c576df1d 100644 --- a/EnvelopeGenerator.Web/wwwroot/js/envelope-api.js +++ b/EnvelopeGenerator.Web/wwwroot/js/envelope-api.js @@ -1,12 +1,14 @@ //#region parameters const env = Object.freeze({ - xsrfToken: document.getElementsByName('__RequestVerificationToken')[0].value, - envKey: document.querySelector('meta[name="env-key"]').getAttribute('content') + __lazyXsrfToken: new Lazy(() => document.getElementsByName('__RequestVerificationToken')[0].value), + get xsrfToken() { + return this.__lazyXsrfToken.value; + } }) const url = Object.freeze({ reject: `/api/annotation/reject`, - rejectRedir: `/envelope/${env.envKey}`, + rejectRedir: `/envelope/${ENV_KEY}`, share: `/api/readonly` }); //#endregion diff --git a/EnvelopeGenerator.Web/wwwroot/js/envelope-api.min.js b/EnvelopeGenerator.Web/wwwroot/js/envelope-api.min.js index 38073145..4dd355d9 100644 --- a/EnvelopeGenerator.Web/wwwroot/js/envelope-api.min.js +++ b/EnvelopeGenerator.Web/wwwroot/js/envelope-api.min.js @@ -1 +1 @@ -function sendRequest(n,t,i=undefined){const r={credentials:"include",method:n,headers:{"X-XSRF-TOKEN":env.xsrfToken}};return i!==undefined&&(r.body=JSON.stringify(i),r.headers["Content-Type"]="application/json"),fetch(t,r)}function getRequest(n){return sendRequest("GET",n)}function getJson(n){return sendRequest("GET",n).then(n=>{if(n.ok)return n.json();throw new Error(`Request failed with status ${n.status}`);})}function postRequest(n,t=undefined){return sendRequest("POST",n,t)}function redirect(n){window.location.href=n}function signEnvelope(n){return postRequest(`/api/annotation`,n)}async function getAnnotationParams(n=0,t=0,i=72){var f,r;const u=await getJson("/api/Config/Annotations");for(f in u)r=u[f],r.width*=i,r.height*=i,r.left+=n-.7,r.left*=i,r.top+=t-.5,r.top*=i;return u}function rejectEnvelope(n){return postRequest(url.reject,n)}function shareEnvelope(n,t){return postRequest(url.share,{receiverMail:n,dateValid:t})}function redirRejected(){redirect(url.rejectRedir)}async function setLanguage(n){const t=await getJson("/api/localization/lang").then(t=>t.includes(n));t&&postRequest(`/api/localization/lang/${n}`).then(n=>{n.redirected&&redirect(n.url)})}function logout(){return postRequest(`/auth/logout`).then(n=>{n.ok&&(window.location.href="/")})}const env=Object.freeze({xsrfToken:document.getElementsByName("__RequestVerificationToken")[0].value,envKey:document.querySelector('meta[name="env-key"]').getAttribute("content")}),url=Object.freeze({reject:`/api/annotation/reject`,rejectRedir:`/envelope/${env.envKey}`,share:`/api/readonly`}); \ No newline at end of file +function sendRequest(n,t,i=undefined){const r={credentials:"include",method:n,headers:{"X-XSRF-TOKEN":env.xsrfToken}};return i!==undefined&&(r.body=JSON.stringify(i),r.headers["Content-Type"]="application/json"),fetch(t,r)}function getRequest(n){return sendRequest("GET",n)}function getJson(n){return sendRequest("GET",n).then(n=>{if(n.ok)return n.json();throw new Error(`Request failed with status ${n.status}`);})}function postRequest(n,t=undefined){return sendRequest("POST",n,t)}function redirect(n){window.location.href=n}function signEnvelope(n){return postRequest(`/api/annotation`,n)}async function getAnnotationParams(n=0,t=0,i=72){var f,r;const u=await getJson("/api/Config/Annotations");for(f in u)r=u[f],r.width*=i,r.height*=i,r.left+=n-.7,r.left*=i,r.top+=t-.5,r.top*=i;return u}function rejectEnvelope(n){return postRequest(url.reject,n)}function shareEnvelope(n,t){return postRequest(url.share,{receiverMail:n,dateValid:t})}function redirRejected(){redirect(url.rejectRedir)}async function setLanguage(n){const t=await getJson("/api/localization/lang").then(t=>t.includes(n));t&&postRequest(`/api/localization/lang/${n}`).then(n=>{n.redirected&&redirect(n.url)})}function logout(){return postRequest(`/auth/logout`).then(n=>{n.ok&&(window.location.href="/")})}const env=Object.freeze({__lazyXsrfToken:new Lazy(()=>document.getElementsByName("__RequestVerificationToken")[0].value),get xsrfToken(){return this.__lazyXsrfToken.value}}),url=Object.freeze({reject:`/api/annotation/reject`,rejectRedir:`/envelope/${ENV_KEY}`,share:`/api/readonly`}); \ No newline at end of file