Skip to content
Za developere · Prijavi se preko Millida

Prijava preko Millida na tvom sajtu

Poveži dugme „Prijava preko Millida“ — prijava preko Millida naloga za posetioce tvog sajta. Registracija aplikacije, tok autorizacije, provera tokena.

Ažurirano 7. septembar 2026.

Millida može da radi kao provajder identiteta: posetilac klikne „Prijavi se preko Millida“ na tvom sajtu, potvrdi prenos podataka i vrati se već prijavljen. Radi preko OpenID Connect — baš kao prijava preko Google, Apple ili Discord — pa će svaka gotova OIDC biblioteka raditi.

Izlaže se samo identitet: Minecraft nadimak, ime, avatar i — ako zatražiš i osoba pristane — imejl, skin, povezani Discord i Telegram i reputacija na platformi. Stanja, transakcije i serveri nisu dostupni aplikacijama.

Šta treba da uradiš

1. Napravi aplikaciju

Profil → API i vebhukovi → kartica Prijava preko Millida → „Napravi aplikaciju“.

Trebaće ti:

  • Naziv — osoba će ga videti na ekranu za prijavu. Reč „Millida“ je zabranjena u nazivu tuđe aplikacije.
  • Redirect URI — gde da se korisnik vrati nakon potvrde. Samo https (za razvoj je dozvoljen http://localhost). Poklapa se u celosti: dodatna kosa crta ili dodat parametar više neće odgovarati.
  • Link ka politici privatnosti — osoba će ga videti pre nego što ti prenese podatke.

Nakon kreiranja dobićeš client_id i, za serversku aplikaciju, client_secret. Tajna se prikazuje samo jednom — sačuvaj je odmah.

Tip aplikacije: server, ako imaš backend koji može da čuva tajnu; public, ako je u pitanju SPA ili mobilna aplikacija i nema gde da se sakrije tajna.

2. Prosledi URL provajdera biblioteci

https://id.millida.net

To je dovoljno: biblioteka će sama pročitati https://id.millida.net/.well-known/openid-configuration i pronaći ostale URL-ove.

3. Pošalji osobu na prijavu

https://id.millida.net/oauth/authorize
  ?response_type=code
  &client_id=your_client_id
  &redirect_uri=https://your-site.ru/auth/millida/callback
  &scope=openid profile email
  &state=random_string
  &nonce=random_string
  &code_challenge=base64url(sha256(code_verifier))
  &code_challenge_method=S256

PKCE je obavezan za sve, uključujući serverske aplikacije. Sačuvaj state u sesiji i proveri ga pri povratku — bez toga se tuđi odgovor može ubaciti u tvoju sesiju.

4. Zameni kod za tokene

POST https://id.millida.net/oauth/token
Content-Type: application/x-www-form-urlencoded
Authorization: Basic base64(client_id:client_secret)

grant_type=authorization_code&code=…&redirect_uri=…&code_verifier=…

Odgovor sadrži access_token, id_token i, ako si zatražio offline_access, refresh_token.

5. Saznaj ko se prijavio

Parsiraj id_token (proveri potpis prema JWKS, iss, aud, exp, nonce) ili zatraži:

GET https://id.millida.net/oauth/userinfo
Authorization: Bearer <access_token>

Koje podatke možeš da zatražiš

Šta tražišŠta dobijaš
openidsub — identifikator korisnika, obavezno
profilenadimak, ime, avatar, link profila
emailimejl adresa i da li je potvrđena
minecraftMinecraft nadimak, njegov UUID, izdanje i linkove ka trenutnom skinu i plaštu
discordidentifikator i naziv povezanog Discord-a
telegramidentifikator i @ime povezanog Telegram-a
reputationlajkovi na profilu, broj postignuća, datum registracije, oznaka verifikovanog naloga
offline_accesspravo da osvežavaš pristup dok osoba ne opozove

Oflajn nadimak nema UUID — minecraft_uuid će biti prazan, a minecraft_username će se popuniti iz naloga. telegram_id dolazi kao string: Telegram chat id ne staje u JSON tačan broj, a parsiranje kao broj kvari poslednje cifre.

Traži samo ono što je neophodno da prijava radi: osoba čita svaku dodatnu stavku na ekranu za pristanak i može da se predomisli odmah tu.

O identifikatoru korisnika

sub je različit za svaku aplikaciju za istu osobu. Nepromenljiv je za tvoj sajt, ali se ne poklapa sa sub-om na drugim sajtovima — ne možeš da uparuješ publiku između aplikacija preko njega.

Čuvaj sub kao ključ korisnika. Imejl za to nije pogodan: može se promeniti.

Verifikacija aplikacije

Nova aplikacija radi odmah, ali je na ekranu za prijavu označena kao neverifikovana. Kada sajt bude spreman, klikni „Pošalji na pregled“ u panelu — pogledaćemo i ukloniti oznaku.

Česte greške

„redirect_uri does not match any registered address“ — adresa se poklapa kao ceo string. Proveri kosu crtu na kraju, šemu i port.

„Only code_challenge_method=S256 is supported“ — PKCE je obavezan, plain se ne prihvata.

„The authorization code has already been used“ — kod je jednokratan i živi minut. Ponovna zamena se smatra znakom curenja i potpuno opoziva pristup aplikacije.

Token je prestao da radi nakon opoziva — osoba je onemogućila aplikaciju u bezbednosnim podešavanjima profila. To je očekivano ponašanje: pošalji je na ponovnu prijavu.

Kako osoba opoziva pristup

Profil → Bezbednost → „Povezane aplikacije“ → „Opozovi“. Pristup se prekida odmah, a svi izdati tokeni postaju mrtvi.