- Spegnimento
- 14 ottobre 2026 alle ore 16:16 UTC
- Autore
- Kamo
- Impegno
- 618ee73
stato era base64 JSON {orgId, nonce, provider} costruito dal chiamante, il nonce non è mai stato memorizzato o controllato, e il callback senza sessione si fidava del decodificato orgId - chiunque potrebbe collegare il proprio account Zoom o Microsoft ad un altro Org. MeetingOAuthStateStore ora emette un token a 64-hex casuale legato a org, membro e fornitore (10-minuto TTL); il callback lo spende con GETDEL, uno comando atomico, quindi un contraffatto, scaduto, riprodotto o concomitante secondo callback viene rifiutato prima che il fornitore venga chiamato. I lookup redirect-URI. Token aggiornamento non aveva serratura e ha scritto all'interno della transazione del chiamante mentre Zoom ruota il token rinfrescante su ogni uso: due pod rinfrescanti subito sinistra uno che tiene un token revocato. refreshIfNeeded ora prende una serratura Redis per (org, provider) (30 s lease, rilascio controllato dal proprietario), rilegge la riga in una REQUIRES NEW transazione (un cameriere di solito trova la sovvenzione fresca del vincitore e non spende mai il token rinfrescante), e memorizza il risultato attraverso MeetingOAuthTokenWriter (REQUIRES NEW), impegnato prima che la serratura sia liberata.
