KamoCRM

Token stanu OAuth to rekord po stronie serwera, a nie blob przeglądarki, z powrotem

FixEmailService
Shipped
23 września 2026 02:58 UTC
Author
Kamo
Commit
78c4a87

/api/email/oauth/callback i ? są publiczne i pozbawione sesji (ang.). Dostawca przekierowuje przeglądarkę tutaj bez sesji Kamo), więc „państwo” było jedynym miejscem, w którym Organizacja mogła pochodzić – i była to samodzielna baza 64 JSON, którą zbudował CALLER: "orgId": 1, "nons": "...", "dostawca": "GOOGLE_WORKSPACE" . Każdy może ręcznie stworzyć jednego nazywającego Różne orgi i odtwarzają go przeciwko kodowi autoryzacji, który uzyskali dla własnego; "poza" Wewnątrz był generowany, ale nigdy nie był przechowywany ani sprawdzany przeciwko czemukolwiek, więc nic nie zatrzymał. O. w tym w tym, że w tym w, pont w tym, że w tym w, poty o. w tym, w tym w, poty o. w tym, w tym, że w tym w, poty o. w tym, w tym, w tym, że w tym w, pont w tym, w tym, w tym, w tym, w tym, że w tym Oddzwoń oddzwonij zaufany orgId/provider/memberId bezpośrednio z tego dekodowania i aktywował podłączony Dostawca, niezależnie od tego, który wyznał państwo. OAuthStateStore teraz miętuje nieprzezroszalny, nieodgadniony token na "issue", zachowując orgę / członek/dostawca// Przepływ decyduje się tylko na rekord Redisa z 10-minutowym TTL - nigdy samym w toku. "peek" czyta ten rekord bez wydawania go (używany do wybrania przekierowania URI i przepływu przed Oddzwonienie zobowiązuje do obsługi); "konsume" odczytuje i trwale go usuwa, więc oddzwonienie jest Jednorazowe użycie: powtórzone lub ponownie wykorzystane symbolowe determinacje do zera, nieodróżnialne od tego, który nigdy Istniało. OAuthFlowService i GroupwareOAuthService — używane do budowy i dekodowania tego blob Niezależnie, każdy z własną kopią tego samego mechanizmu – teraz zarówno miętowy, jak i tokenów odkupieńczych. Za pośrednictwem tego jednego sklepu jest dokładnie jedno miejsce, które decyduje o tym, co oznacza symbol państwa. OAuthStoreTest zawodzi bez naprawy (po drugie spożycie tego samego symbolu wciąż powraca do rekord zamiast zerowania); OAuthFlowServiceTest, OAuthFlowKinDStest i GroupwareOAuthServiceTest Są aktualizowane dla nowego mechanizmu - nie budują już ani nie dekodują bezpośrednio kłąt stanowy, ponieważ Nie ma już nic do dekodowania.

All changes

Like what you see shipping?

All of it arrives in your workspace on its own. Start on the free plan and read this page again in a month.

Start Free ForeverView Pricing