- Shipped
- 15 listopada 2026 09:54 UTC
- Author
- Kamo
- Commit
- d906985
- Przekaźniki emitujące: **************** i RFC 8414 **************** (Następnie przepisuje na /oauth/well-known/*), **************** i /o/{orgId}/oauth/{authorize, token,revoke}; X-Forwarded-Host + X-Kamo-Issuer-Org (ścieżka org 1-20 cyfr, w przeciwnym razie 404 bez wywołania); discovery/JWKS keep Publiczna pamięć podręczna SecurityService, wszystko inne no-store; CORS dla discovery/JWKS/userinfo; 5xx/outage = 503, nigdy nie Błąd poświadczeń. Root /oauth/token|revoke zachowuje dokładny zestaw nagłówków SP09 (Amazon). - autoryzuj przekazywanie **************** tylko po wysłaniu (ciało Alexa pozostaje siedem); prompt=none kontynuuje sesję dostawcy organizacji po stronie serwera i podąża za przekierowaniem SecurityService; pętla natywnej aplikacji / Błąd private-scheme jest śledzony tylko wtedy, gdy przenosi iss. - Podłączone logowanie aplikacji (O2 rodzaj APP): org-branded (paleta wydawcy org + logo, łupek fallback, ciemny tryb), org = <alias> on /api/login, amr na załączniku (pwd / pwd+otp, ustawione przez trasę), dołącz {redirectTo} lub {consentPath} + providerSession -> HttpOnly host-only kamo_op_<orgId> cookie; 409 wrong_organization card; Continue as <name> card via .../session and .../continue (plik cookie HttpOnly jest odczytywany tylko po stronie serwera); Not You? kończy sesję dostawcy i ponownie uruchamia to samo żądanie. - Ogólna zgoda dla rodzaju APP: logo aplikacji obok organizacji, zwykła lista zakresu z nowymi znakami, Zalogowany jako / Nie Ty?, Zezwalaj / Nie zezwalaj z poradami pomocy, zwykłe odmowy (ACCESS_POLICY ...); tylko decyzja {consentToken, decyzja}, dostawca Zgoda Alexa / Google Home / Assistant i logowanie pozostają niezmienione (wszystkie testy SP09 są nietknięte i zielone). - strona wylogowania zainicjowana przez RP [/o/{orgId}]/oauth/end-session (rozpoczęta przez serwer, Wyloguj się / Pozostań zalogowany, strzeżone przekierowanie); /api/logout kończy również każdą sesję dostawcy kamo_op_* (ograniczona do 2,5 s, lokalny klucz delete jako backstop).
