From be5b6a8d49b3595ac1f5d6e975a96c95c4079ad7 Mon Sep 17 00:00:00 2001 From: Luke Date: Thu, 21 Apr 2022 14:47:06 -0500 Subject: [PATCH] feat: add check to refreshApiKeyExpiryTime to not refresh long lived keys (#301) --- backend/src/data/ApiLogins.ts | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/backend/src/data/ApiLogins.ts b/backend/src/data/ApiLogins.ts index ab8779d0..5ad9c262 100644 --- a/backend/src/data/ApiLogins.ts +++ b/backend/src/data/ApiLogins.ts @@ -90,10 +90,15 @@ export class ApiLogins extends BaseRepository { const [loginId, token] = apiKey.split("."); if (!loginId || !token) return; + const updatedTime = moment().utc().add(LOGIN_EXPIRY_TIME, "ms"); + + const login = await this.apiLogins.createQueryBuilder().where("id = :id", { id: loginId }).getOne(); + if (!login || moment.utc(login.expires_at).isSameOrAfter(updatedTime)) return; + await this.apiLogins.update( { id: loginId }, { - expires_at: moment().utc().add(LOGIN_EXPIRY_TIME, "ms").format(DBDateFormat), + expires_at: updatedTime.format(DBDateFormat), }, ); }