revert 3a61ffe7a670e9b7011d41e91b3c3ab864715a93

revert Automated the login with the iframe
This commit is contained in:
Titouan 2025-11-12 14:25:14 +00:00
parent bd0c40241f
commit de7a55e7bc

View File

@ -286,19 +286,18 @@ export async function registerAllListeners() {
const handleRequestLink = async (event: MessageEvent) => { const handleRequestLink = async (event: MessageEvent) => {
console.log(`[Router:API] 📨 Message ${MessageType.REQUEST_LINK} reçu de ${event.origin}`); console.log(`[Router:API] 📨 Message ${MessageType.REQUEST_LINK} reçu de ${event.origin}`);
// L'appel à requestLink() depuis l'AuthModal est désormais la confirmation.
// Nous n'avons plus besoin du modal manuel.
console.log(`[Router:API] Liaison auto-confirmée pour ${event.origin}.`);
const result = true; // Simule le clic sur "Ajouter un service"
/*
// ANCIEN CODE SUPPRIMÉ :
const modalService = await ModalService.getInstance(); const modalService = await ModalService.getInstance();
const result = await modalService.showConfirmationModal( const result = await modalService.showConfirmationModal(
{ {
title: 'Confirmation de liaison', title: 'Confirmation de liaison',
content: `...`, content: `
<div class="modal-confirmation">
<h3>Liaison avec ${event.origin}</h3>
<p>Vous êtes sur le point de lier l'identité numérique de la clé securisée propre à votre appareil avec ${event.origin}.</p>
<p>Cette action permettra à ${event.origin} d'intéragir avec votre appareil.</p>
<p>Voulez-vous continuer ?</p>
</div>
`,
confirmText: 'Ajouter un service', confirmText: 'Ajouter un service',
cancelText: 'Annuler', cancelText: 'Annuler',
}, },
@ -308,10 +307,7 @@ export async function registerAllListeners() {
if (!result) { if (!result) {
throw new Error('Failed to pair device: User refused to link'); throw new Error('Failed to pair device: User refused to link');
} }
*/
// Le reste de votre fonction s'exécute immédiatement :
// Génération des tokens et envoi au parent.
const tokens = await tokenService.generateSessionToken(event.origin); const tokens = await tokenService.generateSessionToken(event.origin);
window.parent.postMessage( window.parent.postMessage(
{ {
@ -503,48 +499,18 @@ export async function registerAllListeners() {
const handleGetPairingId = async (event: MessageEvent) => { const handleGetPairingId = async (event: MessageEvent) => {
console.log(`[Router:API] 📨 Message ${MessageType.GET_PAIRING_ID} reçu`); console.log(`[Router:API] 📨 Message ${MessageType.GET_PAIRING_ID} reçu`);
if (!services.isPaired()) throw new Error('Device not paired');
const maxRetries = 10;
const retryDelay = 300;
let pairingId: string | null = null;
for (let i = 0; i < maxRetries; i++) {
// On NE VÉRIFIE PAS services.isPaired() (qui est obsolète)
// On LIT DIRECTEMENT la BDD, comme le fait 'home.ts'
// (Je suppose que la méthode s'appelle 'getDeviceFromDatabase')
const device = await services.getDeviceFromDatabase();
// On vérifie si l'ID est maintenant présent dans la BDD
if (device && device.pairing_process_commitment) {
// SUCCÈS ! L'ID est dans la BDD
pairingId = device.pairing_process_commitment;
console.log(`[Router:API] GET_PAIRING_ID: ID trouvé en BDD (tentative ${i + 1}/${maxRetries})`);
break; // On sort de la boucle
}
// Si non trouvé, on patiente (l'écriture est peut-être en cours)
console.warn(`[Router:API] GET_PAIRING_ID: Non trouvé en BDD, nouvelle tentative... (${i + 1}/${maxRetries})`);
await new Promise((resolve) => setTimeout(resolve, retryDelay));
}
// Si la boucle se termine sans succès
if (!pairingId) {
console.error(`[Router:API] GET_PAIRING_ID: Échec final, non trouvé en BDD après ${maxRetries} tentatives.`);
throw new Error('Device not paired');
}
// Si on arrive ici, 'pairingId' contient l'ID
const { accessToken } = event.data; const { accessToken } = event.data;
if (!accessToken || !(await tokenService.validateToken(accessToken, event.origin))) { if (!accessToken || !(await tokenService.validateToken(accessToken, event.origin))) {
throw new Error('Invalid or expired session token'); throw new Error('Invalid or expired session token');
} }
// On renvoie l'ID qu'on vient de trouver const userPairingId = services.getPairingProcessId();
window.parent.postMessage( window.parent.postMessage(
{ {
type: MessageType.GET_PAIRING_ID, type: MessageType.GET_PAIRING_ID,
userPairingId: pairingId, // Utiliser la variable 'pairingId' userPairingId,
messageId: event.data.messageId, messageId: event.data.messageId,
}, },
event.origin, event.origin,