Roblox fornisce un'app di esempio Node.js che mostra come utilizzare OAuth 2.0 per consentire agli utenti di accedere ai propri account Roblox e inviare messaggi nei propri giochi. Questa app utilizza il flusso del codice di autorizzazione senza PKCE e pertanto è adatta solo per client riservati, come i server privati.
Dopo aver scaricato il file .zip, estrailo in una propria cartella.
Registrare l'app
Il primo passo per configurare l'app è registrarla sul sito di Roblox e copiare l'ID client e il segreto in un luogo sicuro. Quindi segui i passaggi di registrazione standard con queste impostazioni:
- Sotto Permessi, aggiungi gli ambiti openid, profile e universe-messaging-service:publish.
- Sotto URLs di reindirizzamento, aggiungi l'http://localhost:3000/oauth/callback di reindirizzamento. Se desideri utilizzare una porta non predefinita per la tua app, specificala qui.
Imposta le variabili di ambiente
Invece di memorizzarle nel codice (non raccomandato), l'app utilizza variabili di ambiente per il tuo ID client e segreto. Il processo per aggiungere variabili di ambiente varia in base al sistema operativo.
Su Windows, esegui i seguenti comandi PowerShell:
$env:ROBLOX_CLIENT_ID='your_client_id_here'$env:ROBLOX_CLIENT_SECRET='your_client_secret_here'$env:ROBLOX_PORT=3000 # Facoltativo. Il valore predefinito è 3000.
Su Mac e la maggior parte delle distribuzioni Linux, esegui questi comandi nel terminale:
export ROBLOX_CLIENT_ID=your_client_id_hereexport ROBLOX_CLIENT_SECRET=your_client_secret_hereexport ROBLOX_PORT=3000 # Facoltativo. Il valore predefinito è 3000.
Se hai specificato una porta non predefinita nell'URL di reindirizzamento durante la registrazione della tua app, assicurati di aggiungere la variabile ROBLOX_PORT.
Installa le dipendenze
L'app ha un certo numero di dipendenze, visibili in package.json. Per installarle, esegui:
npm ci
Esegui l'app
Per avviare l'app, esegui:
npm start
Quindi naviga su http://localhost:3000 (o sulla tua porta non predefinita) in un browser web.
L'app ti reindirizzerà immediatamente alla schermata di accesso di Roblox, dove potrai accedere, verificare i permessi richiesti dall'app e cliccare su Conferma e Consenti Accesso.
Roblox ti reindirizzerà quindi a localhost, dove puoi vedere che l'app ora mostra alcune informazioni minime dell'utente, un link di ritorno al tuo profilo su Roblox e campi che puoi utilizzare per inviare messaggi nei tuoi giochi.
Informazioni sull'app
In linea generale, index.js esegue le seguenti operazioni:
- Avvia un nuovo server web utilizzando express.
- Recupera la configurazione OpenID Connect (OIDC) di Roblox, che include endpoint per l'autorizzazione, informazioni utente, ecc. Per ulteriori informazioni su questi endpoint, consulta autenticazione OAuth 2.0.
- Crea un nuovo client Open ID utilizzando openid-client e le tue credenziali memorizzate. Questo client semplifica notevolmente il processo di formazione e invio di richieste HTTP correttamente all'endpoint OAuth 2.0.
- Definisce le rotte per l'app, inclusi i reindirizzamenti per i flussi di accesso e disconnessione e il callback OAuth 2.0.
- Dopo un accesso riuscito, memorizza i vari token come cookie, insieme ad alcune informazioni minime dell'utente che visualizza in HTML con l'aiuto di getHomeHtml.js.