From d3b6ccd1299fd15267be11195aed57b77d900117 Mon Sep 17 00:00:00 2001 From: Lennard Ziegler Date: Fri, 21 Jun 2024 14:14:03 +0200 Subject: [PATCH 1/2] fix(isTokenValid): added try catch to validation method --- package.json | 1 + src/wireAuthorize/wireAuthorize.ts | 34 +++++++++++++++++++++++------- 2 files changed, 27 insertions(+), 8 deletions(-) diff --git a/package.json b/package.json index 83e0cb8..d6a6264 100644 --- a/package.json +++ b/package.json @@ -15,6 +15,7 @@ "build": "webpack --mode production", "build:dev": "webpack --mode development", "dev-server": "webpack serve --mode development", + "dev-server-local": "webpack serve --mode development --host localhost --allowed-hosts all", "lint": "office-addin-lint check", "lint:fix": "office-addin-lint fix", "prettier": "office-addin-lint prettier", diff --git a/src/wireAuthorize/wireAuthorize.ts b/src/wireAuthorize/wireAuthorize.ts index bbd3aac..ba54613 100644 --- a/src/wireAuthorize/wireAuthorize.ts +++ b/src/wireAuthorize/wireAuthorize.ts @@ -55,7 +55,7 @@ export async function fetchWithAuthorizeDialog(url: string | URL, options: Reque "Authorization failed.", Office.MailboxEnums.ItemNotificationMessageType.ErrorMessage ); - + throw new Error("Authorization failed"); } } else if (!response.ok) { @@ -161,7 +161,7 @@ export async function revokeOauthToken(): Promise { const payload = { refresh_token: refreshToken, client_id: config.clientId, - } + }; const response = await fetch(new URL("/oauth/revoke", config.apiBaseUrl), { method: "POST", @@ -180,14 +180,32 @@ export async function revokeOauthToken(): Promise { } export function isTokenValid(token: string): boolean { - if (token) { - const decodedToken = jwt_decode(token); - const currentDate = new Date(); - const currentTime = currentDate.getTime(); - return decodedToken.exp * 1000 > currentTime; + // null-check + if (!token) { + console.error("isTokenValid: token was null", token); + return false; + } + + // decode token + let decodedToken: DecodedToken; + try { + decodedToken = jwt_decode(token); + } catch (err) { + console.error("isTokenValid: error decoding token", err); + return false; + } + + // check token + let result: boolean; + try { + result = decodedToken.exp * 1000 > new Date().getTime(); + } catch (err) { + console.error("isTokenValid: error checking token validity"); + return false; } - return false; + // return if token is valid + return result; } function isLoggedIn(): boolean { From 1387f23e053cf86f81c050b7514c3f0860091204 Mon Sep 17 00:00:00 2001 From: Lennard Ziegler Date: Wed, 26 Jun 2024 09:56:28 +0200 Subject: [PATCH 2/2] fix(package.json): remove script to resolve merge conflicts --- package.json | 1 - 1 file changed, 1 deletion(-) diff --git a/package.json b/package.json index d6a6264..83e0cb8 100644 --- a/package.json +++ b/package.json @@ -15,7 +15,6 @@ "build": "webpack --mode production", "build:dev": "webpack --mode development", "dev-server": "webpack serve --mode development", - "dev-server-local": "webpack serve --mode development --host localhost --allowed-hosts all", "lint": "office-addin-lint check", "lint:fix": "office-addin-lint fix", "prettier": "office-addin-lint prettier",