From 831efdfffbc973cf504d55d0f735bfcfb191df40 Mon Sep 17 00:00:00 2001 From: feng <1304903146@qq.com> Date: Mon, 25 Dec 2023 14:13:32 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E3=80=90=E7=94=A8=E6=88=B7=E7=99=BB?= =?UTF-8?q?=E5=BD=95=E4=BC=9A=E8=AF=9D=E5=A4=B1=E6=95=88=E9=97=AE=E9=A2=98?= =?UTF-8?q?=E3=80=91SESSION=5FCOOKIE=5FAGE=20=E9=85=8D=E7=BD=AE=E4=B8=8D?= =?UTF-8?q?=E7=94=9F=E6=95=88=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/app/services/app.ts | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/src/app/services/app.ts b/src/app/services/app.ts index 8ba87f31..52c56436 100644 --- a/src/app/services/app.ts +++ b/src/app/services/app.ts @@ -103,6 +103,17 @@ export class AppService { }, second * 1000); } + isRenewalExpired(renewalTime: number = 60 * 2) { + const currentTimeStamp = Math.floor(new Date().getTime() / 1000); + const sessionExpireTimestamp = getCookie('jms_session_expire_timestamp'); + + if (!sessionExpireTimestamp) { + return false; + } + const timeDifferenceInSeconds = currentTimeStamp - parseInt(sessionExpireTimestamp, 10); + return timeDifferenceInSeconds > renewalTime; + } + checkLogin() { this._logger.debug('Check user auth'); if (!DataStore.Path) { @@ -122,13 +133,18 @@ export class AppService { const token = this.getQueryString('token'); // Determine whether the user has logged in const sessionExpire = getCookie('jms_session_expire'); + const renewalTime = 60 * 2; if (!sessionExpire && !token) { - setCookie('jms_session_expire', 'close', 120); + setCookie('jms_session_expire', 'close', renewalTime); gotoLogin(); return; } else if (sessionExpire === 'close') { - setInterval(() => { - setCookie('jms_session_expire', sessionExpire, 120); + const intervalId = setInterval(() => { + if (!this.isRenewalExpired(renewalTime)) { + setCookie('jms_session_expire', sessionExpire, renewalTime); + } else { + clearInterval(intervalId); + } }, 10 * 1000); }