backend: Enhance participant token validation to include authenticated user retrieval

This commit is contained in:
juancarmore 2025-04-24 11:23:07 +02:00
parent 0006097d8e
commit 41a375c6bb

View File

@ -96,8 +96,11 @@ export const participantTokenValidator = async (req: Request) => {
try { try {
const payload = await tokenService.verifyToken(token); const payload = await tokenService.verifyToken(token);
const user = await getAuthenticatedUserOrAnonymous(req);
req.session = req.session || {}; req.session = req.session || {};
req.session.tokenClaims = payload; req.session.tokenClaims = payload;
req.session.user = user;
} catch (error) { } catch (error) {
throw errorInvalidToken(); throw errorInvalidToken();
} }
@ -126,6 +129,14 @@ export const apiKeyValidator = async (req: Request) => {
// Allow anonymous access // Allow anonymous access
export const allowAnonymous = async (req: Request) => { export const allowAnonymous = async (req: Request) => {
const user = await getAuthenticatedUserOrAnonymous(req);
req.session = req.session || {};
req.session.user = user;
};
// Return the authenticated user if available, otherwise return an anonymous user
const getAuthenticatedUserOrAnonymous = async (req: Request) => {
let user: User | null = null; let user: User | null = null;
// Check if there is a user already authenticated // Check if there is a user already authenticated
@ -151,8 +162,7 @@ export const allowAnonymous = async (req: Request) => {
}; };
} }
req.session = req.session || {}; return user;
req.session.user = user;
}; };
// Limit login attempts to avoid brute force attacks // Limit login attempts to avoid brute force attacks