From fd34162a59201a64adf679711072d69b6b4d32c2 Mon Sep 17 00:00:00 2001 From: Jonathan Barrow Date: Sat, 24 Sep 2022 19:45:54 -0400 Subject: [PATCH] Stop server from crashing on failed token decrypt --- src/database.js | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/src/database.js b/src/database.js index d535206..5a30cba 100644 --- a/src/database.js +++ b/src/database.js @@ -75,20 +75,26 @@ async function getUserBasic(token) { async function getUserBearer(token) { verifyConnected(); - const decryptedToken = await util.decryptToken(Buffer.from(token, 'base64')); - const unpackedToken = util.unpackToken(decryptedToken); + try { + const decryptedToken = await util.decryptToken(Buffer.from(token, 'base64')); + const unpackedToken = util.unpackToken(decryptedToken); - const user = await getUserByPID(unpackedToken.pid); + const user = await getUserByPID(unpackedToken.pid); - if (user) { - const expireTime = Math.floor((Number(unpackedToken.expire_time) / 1000)); + if (user) { + const expireTime = Math.floor((Number(unpackedToken.expire_time) / 1000)); - if (Math.floor(Date.now() / 1000) > expireTime) { - return null; + if (Math.floor(Date.now() / 1000) > expireTime) { + return null; + } } - } - return user; + return user; + } catch (error) { + // TODO: Handle error + return null; + } + } async function getUserProfileJSONByPID(pid) {