diff --git a/src/router.ts b/src/router.ts index 40deea0..a932995 100755 --- a/src/router.ts +++ b/src/router.ts @@ -394,74 +394,34 @@ export async function registerAllListeners() { if (event.data.type !== MessageType.RENEW_TOKEN) { return; } - + try { - console.log('📥 [GetProfile] Réception de la demande'); - const { sessionToken } = event.data; - - if (!sessionToken || !tokenService.validateToken(sessionToken, event.origin)) { - throw new Error('Invalid or expired session token'); - } - - console.log('🔍 [GetProfile] Récupération des profils'); - const processes = await services.getProcesses(); - console.log('Processes après résolution:', processes); - - let decryptedData: Record = {}; - - const processArray = Array.isArray(processes) ? processes : Object.values(processes); - - if (processArray && processArray.length > 0) { - console.log(`📋 Traitement de ${processArray.length} processus`); - - for (const process of processArray) { - try { - console.log('Process en cours:', process); - if (process && process.id && !process.certified) { - console.log(`🔄 Traitement du processus non certifié ${process.id}`); - const states = process.states; - - if (states && states.length > 0) { - for (const state of states) { - if (state && state.pcd_commitment) { - console.log(`📝 Attributs trouvés dans l'état:`, Object.keys(state.pcd_commitment)); - for (const attribute of Object.keys(state.pcd_commitment)) { - try { - const decryptedValue = await services.decryptAttribute(process.id, state, attribute); - if (decryptedValue) { - decryptedData[attribute] = decryptedValue; - console.log(`✅ Attribut déchiffré: ${attribute} = ${decryptedValue}`); - } - } catch (e) { - console.warn(`⚠️ Échec du déchiffrement de ${attribute}:`, e); - } - } - } - } - } - } - } catch (processError) { - console.error(`❌ Erreur lors du traitement du processus:`, processError); - } - } - } else { - console.warn('❌ Aucun processus trouvé ou tableau vide'); - } - - console.log('📤 [GetProfile] Données déchiffrées:', decryptedData); - window.parent.postMessage( - { - type: MessageType.DATA_RETRIEVED, - data: decryptedData, - sessionToken - }, - event.origin - ); - } catch (e) { - console.error('❌ Erreur:', e); - errorResponse(`Failed to get profile: ${e}`, event.origin); + const tokenService = await TokenService.getInstance(); + const refreshToken = event.data.refreshToken; + + if (!refreshToken) { + throw new Error('No refresh token provided'); + } + + const newAccessToken = await tokenService.refreshAccessToken(refreshToken, event.origin); + + if (!newAccessToken) { + throw new Error('Failed to refresh token'); + } + + window.parent.postMessage( + { + type: MessageType.RENEW_TOKEN, + accessToken: newAccessToken, + refreshToken: refreshToken + }, + event.origin + ); + } catch (error) { + const errorMsg = `Failed to renew token: ${error}`; + errorResponse(errorMsg, event.origin); } - }; + } window.addEventListener('message', handleRequestLink); window.addEventListener('message', handleAddProfile);