Roblox menyediakan aplikasi contoh Node.js yang menunjukkan bagaimana menggunakan OAuth 2.0 untuk memungkinkan pengguna masuk ke akun Roblox mereka dan menyiarkan pesan di seluruh permainan mereka. Aplikasi ini menggunakan authorization code flow tanpa PKCE dan karenanya hanya cocok untuk klien rahasia, seperti server pribadi.
Setelah mengunduh file .zip, ekstrak ke folder terpisah.
Daftarkan aplikasi
Langkah pertama untuk menyiapkan aplikasi adalah mendaftar di situs web Roblox dan menyalin ID klien dan rahasia di tempat yang aman. Kemudian ikuti langkah pendaftaran standar dengan pengaturan berikut:
- Di bawah Permissions, tambahkan ruang lingkup openid, profile, dan universe-messaging-service:publish.
- Di bawah Redirect URLs, tambahkan http://localhost:3000/oauth/callback untuk pengalihan. Jika Anda ingin menggunakan port non-default untuk aplikasi Anda, tentukan di sini.
Setel variabel lingkungan
Alih-alih menyimpannya di dalam kode (tidak dianjurkan), aplikasi menggunakan variabel lingkungan untuk ID klien dan rahasia Anda. Proses untuk menambahkan variabel lingkungan berbeda menurut sistem operasi.
Di Windows, jalankan perintah PowerShell berikut:
$env:ROBLOX_CLIENT_ID='your_client_id_here'$env:ROBLOX_CLIENT_SECRET='your_client_secret_here'$env:ROBLOX_PORT=3000 # Opsional. Defaultnya adalah 3000.
Di Mac dan sebagian besar distribusi Linux, jalankan perintah ini di terminal:
export ROBLOX_CLIENT_ID=your_client_id_hereexport ROBLOX_CLIENT_SECRET=your_client_secret_hereexport ROBLOX_PORT=3000 # Opsional. Defaultnya adalah 3000.
Jika Anda menentukan port non-default dalam URL pengalihan saat mendaftar aplikasi Anda, pastikan untuk menambahkan variabel ROBLOX_PORT.
Pasang ketergantungan
Aplikasi ini memiliki sejumlah ketergantungan, terlihat di package.json. Untuk memasangnya, jalankan:
npm ci
Jalankan aplikasi
Untuk memulai aplikasi, jalankan:
npm start
Kemudian arahkan ke http://localhost:3000 (atau port non-default Anda) di browser web.
Aplikasi ini segera mengalihkan Anda ke layar login Roblox, di mana Anda dapat masuk, memverifikasi izin yang diminta aplikasi, dan mengklik Konfirmasi dan Berikan Akses.
Roblox kemudian mengalihkan Anda kembali ke localhost, di mana Anda dapat melihat bahwa aplikasi sekarang menampilkan beberapa informasi pengguna minimal, tautan kembali ke profil Anda di Roblox, dan bidang yang dapat Anda gunakan untuk menyiarkan pesan di seluruh permainan Anda.
Tentang aplikasi
Secara garis besar, index.js melakukan operasi berikut:
- Memulai server web baru menggunakan express.
- Mengambil konfigurasi OpenID Connect (OIDC) Roblox, yang mencakup titik akhir untuk otorisasi, informasi pengguna, dll. Untuk informasi lebih lanjut tentang titik akhir ini, lihat autentikasi OAuth 2.0.
- Membuat klien Open ID baru menggunakan openid-client dan kredensial Anda yang disimpan. Klien ini secara dramatis menyederhanakan proses pengformalan dan pengiriman permintaan HTTP dengan tepat ke titik akhir OAuth 2.0.
- Mendefinisikan rute untuk aplikasi, termasuk pengalihan untuk alur login dan logout serta callback OAuth 2.0.
- Setelah login berhasil, menyimpan berbagai token sebagai cookie, bersama dengan beberapa informasi pengguna minimal yang ditampilkan sebagai HTML dengan bantuan dari getHomeHtml.js.