1. Prywatny link z Discorda
Użytkownik kliknie „Zweryfikuj konto”. Bot zapisze sesję ważną 10 minut i wyśle link widoczny tylko dla tej osoby. Token linku będzie miał 256 bitów entropii, a w bazie znajdzie się wyłącznie jego skrót SHA‑256.
Otworzenie strony nie zużyje linku. Dopiero świadome kliknięcie formularza rozpocznie RSO, więc automatyczne skanery linków nie zablokują użytkownika.
2. Autoryzacja po stronie Riot
Przeglądarka trafi do auth.riotgames.com/authorize. Moon Poro poprosi tylko o dwa zakresy:
openid cpidopenid zidentyfikuje konto, a cpid zwróci platformę League of Legends. Nie poprosimy o offline_access, ponieważ tokeny nie będą odświeżane ani zapisywane.
3. Powrót i potwierdzenie konta
Riot wróci na dokładnie zarejestrowany adres. Serwer porówna jednorazowy parametr state, bezpiecznie wymieni kod i pobierze konto z /riot/account/v1/accounts/me oraz platformę z /userinfo.
Token dostępu pozostanie w pamięci tylko na czas tych żądań. Nie trafi do bazy, ciasteczka, logów ani procesu Discorda.
4. Role w Discordzie
Serwer zarezerwuje unikalne powiązanie PUUID ↔ Discord. Bot pobierze oficjalną rangę Solo/Duo, nada role i wyśle prywatne potwierdzenie. Chwilowe problemy Riot lub Discorda zostaną obsłużone przez automatyczne ponowienie.
Informacja dla Riot Developer Relations
To jest publiczny opis planowanego przepływu RSO dla istniejącej aplikacji produkcyjnej ID 524635. Dane testowe i dostęp do serwera recenzenckiego są przekazywane prywatnie w korespondencji z Developer Relations. Dokładny redirect URI to https://moonporo.pl/oauth2/callback.