KamoCRM

Meeting-provider OAuth État est un jeton unique opaque Redis; rafraîchissement est verrouillé et commis sur son propre

FixMediaService
Expédié
14 octobre 2026 à 16:16 UTC
Auteur
Kamo
S'engager
618ee73

l'état était base64 JSON {orgId, nonce, fournisseur} construit par l'appelant, le nonce n'a jamais été stocké ou vérifié, et le callback sans session a fait confiance au décodé orgId - n'importe qui pourrait attacher son propre compte Zoom ou Microsoft à un autre org. MeetingOauthStateStore émet maintenant un jeton aléatoire de 64h lié à org, membre et fournisseur (10 minutes TTL); le rappel le dépense avec GETDEL, un commande atomique, donc un callback falsifié, expiré, rejoué ou concurrent deuxième est refusé avant l'appel du prestataire. Les regards redirection-URI. Token rafraîchissement n'avait pas de verrou et a écrit dans la transaction de l'appelant pendant Zoom tourne le jeton rafraîchissant sur chaque utilisation: deux gousses rafraîchissantes à la fois a laissé un jeton révoqué. rafraîchirIfNeeded prend maintenant un verrou Redis par (org, fournisseur) (30 s bail, mainlevée contrôlée par le propriétaire), relise la ligne dans une REQUIRES NEW transaction (un serveur trouve généralement la nouvelle subvention du gagnant et ne dépense jamais le jeton rafraîchissant), et stocke le résultat à travers MeetingOauthTokenWriter (REQUIRES NEW), engagé avant la libération du verrou.

Tous les changements

Comme ce que tu vois expédier ?

Tout cela arrive dans votre espace de travail par lui-même. Commencez sur le plan gratuit et relisez cette page dans un mois.

Commencez gratuitement pour toujoursPrix de visualisation