Riot Sign On · OAuth 2.0 / OpenID

Jak działa weryfikacja przez Riot Sign On

Moon Poro używa przepływu Authorization Code. Dane logowania wpisujesz wyłącznie na stronie Riot, a po autoryzacji wracasz do Moon Poro.

1. Prywatny link z Discorda

Użytkownik klika „Zweryfikuj przez Riot”. Bot zapisuje sesję ważną 10 minut i wysyła link widoczny tylko dla tej osoby. Token linku ma 256 bitów entropii i w bazie istnieje wyłącznie jako skrót SHA‑256.

Otworzenie strony nie zużywa linku. Dopiero świadome kliknięcie formularza rozpoczyna RSO, więc automatyczne skanery linków nie blokują użytkownika.

2. Autoryzacja po stronie Riot

Przeglądarka trafia do auth.riotgames.com/authorize. Żądamy tylko dwóch zakresów:

openid cpid

openid identyfikuje konto, a cpid zwraca platformę League of Legends. Nie żądamy offline_access, ponieważ nie odświeżamy ani nie zapisujemy tokenów.

3. Callback i potwierdzenie konta

Riot wraca na dokładnie zarejestrowany adres callback. Serwer porównuje jednorazowy parametr state, wymienia kod połączeniem server‑to‑server i pobiera konto z /riot/account/v1/accounts/me oraz platformę z /userinfo.

Access token pozostaje w pamięci tylko na czas tych żądań. Nie trafia do bazy, ciasteczka, logów ani procesu Discorda.

4. Role w Discordzie

Callback rezerwuje unikalne powiązanie PUUID ↔ Discord. Bot pobiera oficjalną rangę Solo/Duo, nadaje role i wysyła prywatne potwierdzenie. Jeśli Riot lub Discord ma chwilową awarię, zadanie jest ponawiane z rosnącym odstępem.

Informacja dla Riot Developer Relations

To jest publiczny opis kompletnego przepływu produktu dla istniejącej aplikacji produkcyjnej ID 524635. Dane testowe i dostęp do serwera recenzenckiego są przekazywane prywatnie w App Notes. Dokładny redirect URI to https://moonporo.pl/oauth2/callback.