From d0003ca7f20b04639420dc0e1a5900d9423c900a Mon Sep 17 00:00:00 2001 From: SrGooglo Date: Mon, 17 Jul 2023 22:13:21 +0000 Subject: [PATCH] use `createTokenRegeneration` --- .../middlewares/withAuthentication/index.js | 24 ++++--------------- .../utils/createTokenRegeneration/index.js | 17 +++++++++++++ 2 files changed, 21 insertions(+), 20 deletions(-) create mode 100644 packages/server/src/utils/createTokenRegeneration/index.js diff --git a/packages/server/src/middlewares/withAuthentication/index.js b/packages/server/src/middlewares/withAuthentication/index.js index f53567fa..9df7da86 100755 --- a/packages/server/src/middlewares/withAuthentication/index.js +++ b/packages/server/src/middlewares/withAuthentication/index.js @@ -1,5 +1,6 @@ import { Session, User, authorizedServerTokens } from "@shared-classes/DbModels" -import { Token } from "@lib" + +import createTokenRegeneration from "@utils/createTokenRegeneration" import SecureEntry from "@lib/secureEntry" @@ -57,29 +58,12 @@ export default async (req, res, next) => { return reject("Invalid token, cannot regenerate") } - let regenerationToken = null - - // check if this expired token has a regeneration token associated - const associatedRegenerationToken = await Token.getRegenerationToken(token) - - if (associatedRegenerationToken) { - regenerationToken = associatedRegenerationToken.refreshToken - } else { - // create a new regeneration token with the expired token - regenerationToken = await Token.createNewRegenerationToken(token).catch((error) => { - // in case of error, reject - reject(error.message) - - return null - }) - } - - if (!regenerationToken) return + const refreshToken = await createTokenRegeneration(token) // now send the regeneration token to the client (start Expired Exception Event [EEE]) return res.status(401).json({ error: "Token expired", - refreshToken: regenerationToken.refreshToken, + refreshToken: refreshToken, }) } diff --git a/packages/server/src/utils/createTokenRegeneration/index.js b/packages/server/src/utils/createTokenRegeneration/index.js new file mode 100644 index 00000000..c35714b0 --- /dev/null +++ b/packages/server/src/utils/createTokenRegeneration/index.js @@ -0,0 +1,17 @@ +import { Token } from "@lib" + +export default async (expiredToken) => { + let regenerationToken = null + + // check if this expired token has a regeneration token associated + const associatedRegenerationToken = await Token.getRegenerationToken(expiredToken) + + if (associatedRegenerationToken) { + regenerationToken = associatedRegenerationToken.refreshToken + } else { + // create a new regeneration token with the expired token + regenerationToken = await Token.createNewRegenerationToken(expiredToken) + } + + return regenerationToken.refreshToken +} \ No newline at end of file