diff --git a/backend/src/v5/services/sso/frontegg/index.js b/backend/src/v5/services/sso/frontegg/index.js index 7ac35a364e..c9623c0f82 100644 --- a/backend/src/v5/services/sso/frontegg/index.js +++ b/backend/src/v5/services/sso/frontegg/index.js @@ -94,23 +94,13 @@ Frontegg.getUserInfoFromToken = async (token) => { } }; -Frontegg.validateAndRefreshToken = async ({ token /* refreshToken */ }) => { +Frontegg.validateToken = async ({ token }, userId) => { try { const client = await getIdentityClient(); - const user = await client.validateToken(token); - - /* try { - const payload = { - grant_type: 'refresh_token', - refresh_token: refreshToken, - }; - - const { data } = await post(`${config.appUrl}/oauth/token`, payload, { headers: basicHeader }); - } catch (err) { - console.log(err); - } */ - - return user; + const { sub } = await client.validateToken(token); + if (sub !== userId) { + throw new Error('User ID mismatched'); + } } catch (err) { throw new Error(`Failed to validate user token: ${err.message}`); } diff --git a/backend/src/v5/utils/sessions.js b/backend/src/v5/utils/sessions.js index 56e70cb441..5d8828d151 100644 --- a/backend/src/v5/utils/sessions.js +++ b/backend/src/v5/utils/sessions.js @@ -22,7 +22,7 @@ const { apiUrls } = require('./config'); const { deleteIfUndefined } = require('./helper/objects'); const { events } = require('../services/eventsManager/eventsManager.constants'); const { publish } = require('../services/eventsManager/eventsManager'); -const { validateAndRefreshToken } = require('../services/sso/frontegg'); +const { validateToken } = require('../services/sso/frontegg'); const referrerMatch = (sessionReferrer, headerReferrer) => { const domain = getURLDomain(headerReferrer); @@ -43,8 +43,8 @@ const validateCookie = async (session, cookies, headers) => { if (internalSessionValid) { try { - const user = await validateAndRefreshToken(session.user.auth.tokenInfo); - return user.sub === session.user.auth.userId; + await validateToken(session.user.auth.tokenInfo, session.user.auth.userId); + return true; } catch (err) { return false; }