Login dengan Millida di situs web Anda
Menghubungkan tombol “Login with Millida” — login melalui akun Millida untuk pengunjung situs web Anda. Pendaftaran aplikasi, alur otorisasi, verifikasi token.
Diperbarui 7 September 2026
Millida dapat berperan sebagai penyedia identitas: pengunjung mengklik "Sign in with Millida" di situs Anda, mengonfirmasi transfer data, lalu kembali dalam keadaan sudah terautentikasi. Ini bekerja melalui OpenID Connect — sama seperti masuk dengan Google, Apple, atau Discord — sehingga pustaka OIDC siap pakai apa pun akan berfungsi.
Hanya identitas yang diungkapkan: nickname Minecraft, nama, avatar, dan — jika Anda memintanya dan orang tersebut menyetujui — email, skin, Discord dan Telegram yang tertaut, serta reputasi di platform. Saldo, transaksi, dan server tidak tersedia untuk aplikasi.
Yang perlu Anda lakukan
1. Buat aplikasi
Profil → API dan webhook → tab Sign in with Millida → "Buat aplikasi".
Anda akan memerlukan:
- Nama — orang tersebut akan melihatnya di layar masuk. Kata "Millida" dilarang dalam nama aplikasi milik orang lain.
- Redirect URI — ke mana pengguna dikembalikan setelah konfirmasi. Hanya
https(untuk pengembangan,http://localhostdiizinkan). Alamat ini dicocokkan secara penuh: satu garis miring tambahan atau parameter yang ditambahkan tidak akan lagi cocok. - Tautan kebijakan privasi — orang tersebut akan melihatnya sebelum mentransfer data kepada Anda.
Setelah dibuat, Anda akan menerima client_id dan, untuk aplikasi server, client_secret. Secret hanya ditampilkan sekali — simpan segera.
Jenis aplikasi: server, jika Anda memiliki backend yang dapat menyimpan secret; public, jika ini SPA atau aplikasi mobile dan tidak ada tempat untuk menyembunyikan secret.
2. Tentukan URL penyedia ke pustaka
https://id.millida.net
Itu sudah cukup: pustaka akan membaca https://id.millida.net/.well-known/openid-configuration sendiri dan menemukan URL lainnya.
3. Kirim orang tersebut untuk masuk
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 wajib untuk semua, termasuk aplikasi server. Simpan state di sesi dan verifikasi saat kembali — tanpa ini, respons orang lain dapat disuntikkan ke sesi Anda.
4. Tukar kode dengan token
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=…
Respons berisi access_token, id_token, dan, jika Anda meminta offline_access, refresh_token.
5. Cari tahu siapa yang masuk
Uraikan id_token (verifikasi tanda tangan terhadap JWKS, iss, aud, exp, nonce) atau minta:
GET https://id.millida.net/oauth/userinfo
Authorization: Bearer <access_token>
Data apa yang dapat Anda minta
| Yang Anda minta | Yang Anda dapatkan |
|---|---|
openid | sub — pengenal pengguna, wajib |
profile | nickname, nama, avatar, tautan profil |
email | alamat email dan apakah sudah terverifikasi |
minecraft | nickname Minecraft, UUID-nya, edisi, dan tautan ke skin serta jubah saat ini |
discord | pengenal dan nama Discord yang tertaut |
telegram | pengenal dan @name Telegram yang tertaut |
reputation | suka pada profil, jumlah pencapaian, tanggal pendaftaran, tanda akun terverifikasi |
offline_access | hak untuk menyegarkan akses hingga orang tersebut mencabutnya |
Nickname offline tidak memiliki UUID — minecraft_uuid akan kosong, dan minecraft_username akan diisi dari akun. telegram_id diberikan sebagai string: id chat Telegram tidak muat dalam bilangan eksak JSON, dan menguraikannya sebagai angka akan merusak digit terakhir.
Minta hanya yang diperlukan agar proses masuk berfungsi: orang tersebut membaca setiap item tambahan di layar persetujuan dan bisa berubah pikiran saat itu juga.
Tentang pengenal pengguna
sub berbeda untuk setiap aplikasi bagi orang yang sama. Nilai ini tidak dapat berubah untuk situs Anda, tetapi tidak cocok dengan sub di situs lain — Anda tidak dapat mencocokkan audiens antar aplikasi dengan nilai ini.
Simpan sub sebagai kunci pengguna. Email tidak cocok untuk ini: email dapat diubah.
Verifikasi aplikasi
Aplikasi baru langsung berfungsi, tetapi ditandai sebagai belum terverifikasi di layar masuk. Saat situs sudah siap, klik "Kirim untuk ditinjau" di dasbor — kami akan memeriksanya dan menghapus label tersebut.
Kesalahan umum
"redirect_uri does not match any registered address" — alamat dicocokkan sebagai string penuh. Periksa garis miring di akhir, skema, dan port.
"Only code_challenge_method=S256 is supported" — PKCE wajib, plain tidak diterima.
"The authorization code has already been used" — kode bersifat sekali pakai dan berlaku selama satu menit. Penukaran berulang dianggap sebagai tanda kebocoran dan mencabut akses aplikasi sepenuhnya.
Token berhenti berfungsi setelah pencabutan — orang tersebut menonaktifkan aplikasi di pengaturan keamanan profil. Ini perilaku yang diharapkan: arahkan mereka untuk masuk lagi.
Bagaimana seseorang mencabut akses
Profil → Keamanan → "Aplikasi yang terhubung" → "Cabut". Akses langsung berhenti, dan semua token yang diterbitkan menjadi mati.