From 1aa3d8e5e89b3696cc9554f41e9ce13806dde406 Mon Sep 17 00:00:00 2001 From: Elias Schneider Date: Tue, 27 Feb 2024 09:40:52 +0100 Subject: [PATCH] fix: reduce refresh access token calls --- frontend/src/pages/_app.tsx | 7 ++++++- frontend/src/services/auth.service.ts | 4 +++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/frontend/src/pages/_app.tsx b/frontend/src/pages/_app.tsx index cb33bf7c..6854be22 100644 --- a/frontend/src/pages/_app.tsx +++ b/frontend/src/pages/_app.tsx @@ -50,7 +50,12 @@ function App({ Component, pageProps }: AppProps) { }, [router.pathname]); useEffect(() => { - setInterval(async () => await authService.refreshAccessToken(), 30 * 1000); + const interval = setInterval( + async () => await authService.refreshAccessToken(), + 2 * 60 * 1000, // 2 minutes + ); + + return () => clearInterval(interval); }, []); useEffect(() => { diff --git a/frontend/src/services/auth.service.ts b/frontend/src/services/auth.service.ts index 033edd4d..f1554923 100644 --- a/frontend/src/services/auth.service.ts +++ b/frontend/src/services/auth.service.ts @@ -36,8 +36,10 @@ const signOut = async () => { const refreshAccessToken = async () => { try { const accessToken = getCookie("access_token") as string; + + // If the access token expires in less than 2 minutes refresh it if ( - !accessToken || + accessToken && (jose.decodeJwt(accessToken).exp ?? 0) * 1000 < Date.now() + 2 * 60 * 1000 ) { await api.post("/auth/token");