- Navios
- 14 de outubro de 2026 às 16:16 UTC
- Autor
- Kamo
- Enviar
- 618ee73
estado foi base64 JSON {orgId, nonce, provedor} construído pelo chamador, o nonce nunca foi armazenado ou verificado, e o retorno sem sessão confiou no decodificado orgId - qualquer pessoa pode anexar a sua própria conta Zoom ou Microsoft a outra org. MeetingOAuthStateStore agora emite um token aleatório de 64-hex ligado a org, membro e provedor (10 minutos TTL); o callback gasta-o com GETDEL, um comando atômico, então um segundo retorno forjado, expirado, repetido ou concorrente é recusado antes de o prestador ser chamado. A pesquisa do URI de redirecionamento. A atualização do Token não tinha bloqueio e escreveu dentro da transação do chamador enquanto Zoom gira o token de atualização em cada uso: duas vagens refrescantes ao mesmo tempo deixou um com um símbolo revogado. atualizarIfNeeded agora leva um bloqueio Redis por (org, provedor) (30 s leasing, liberação controlada pelo proprietário), re-ler a linha em um NEW transaction (um garçom geralmente encontra a nova bolsa do vencedor e nunca gasta o token de atualização), e armazena o resultado através MeetingOAuthTokenWriter (REQUIRES NOV), comprometido antes do bloqueio ser liberado.
