Roblox biedt een Node.js voorbeeldapp die laat zien hoe je OAuth 2.0 kunt gebruiken om gebruikers in te laten loggen op hun Roblox-accounts en berichten te verzenden in hun games. Deze app gebruikt de autorisatiecode-stroom zonder PKCE en is dus alleen geschikt voor vertrouwelijke clients, zoals privéservers.
Na het downloaden van het .zip-bestand, pak het uit naar een eigen map.
Registreer de app
De eerste stap om de app in te stellen is om deze te registreren op de Roblox-website en de client-ID en het geheim ergens veilig te kopiëren. Volg vervolgens de standaardregistratiestappen met deze instellingen:
- Onder Machtigingen, voeg de openid, profile en universe-messaging-service:publish scopes toe.
- Onder Redirect-URL's, voeg de http://localhost:3000/oauth/callback redirect toe. Als je een niet-standaardpoort voor je app wilt gebruiken, geef deze hier op.
Stel omgevingsvariabelen in
In plaats van ze in de code op te slaan (niet aanbevolen), gebruikt de app omgevingsvariabelen voor je client-ID en geheim. Het proces voor het toevoegen van omgevingsvariabelen verschilt per besturingssysteem.
Op Windows, voer de volgende PowerShell-opdrachten uit:
$env:ROBLOX_CLIENT_ID='your_client_id_here'
$env:ROBLOX_CLIENT_SECRET='your_client_secret_here'
$env:ROBLOX_PORT=3000 # Optioneel. Standaard is 3000.Op Mac en de meeste Linux-distributies, voer deze opdrachten uit in de terminal:
export ROBLOX_CLIENT_ID=your_client_id_here
export ROBLOX_CLIENT_SECRET=your_client_secret_here
export ROBLOX_PORT=3000 # Optioneel. Standaard is 3000.Als je een niet-standaardpoort hebt opgegeven in de redirect-URL bij het registreren van je app, zorg er dan voor dat je de ROBLOX_PORT variabele toevoegt.
Installeer afhankelijkheden
De app heeft een aantal afhankelijkheden, zichtbaar in package.json. Om ze te installeren, voer uit:
npm ciVoer de app uit
Om de app te starten, voer uit:
npm startNavigeer vervolgens naar http://localhost:3000 (of je niet-standaardpoort) in een webbrowser.
De app leidt je onmiddellijk om naar het inlogscherm van Roblox, waar je kunt inloggen, de machtigingen die de app aanvraagt kunt verifiëren en op Bevestigen en Toegang Geven kunt klikken.
Roblox leidt je vervolgens terug naar localhost, waar je kunt zien dat de app nu enkele minimale gebruikersinformatie weergeeft, een link terug naar je profiel op Roblox, en velden die je kunt gebruiken om berichten in je games te verzenden.
Over de app
In grote lijnen voert index.js de volgende bewerkingen uit:
- Start een nieuwe webserver met express.
- Haalt de Roblox OpenID Connect (OIDC) configuratie op, die eindpunten voor autorisatie, gebruikersinformatie, enz. bevat. Voor meer informatie over deze eindpunten, zie OAuth 2.0 authenticatie.
- Creëert een nieuwe Open ID-client met openid-client en je opgeslagen referenties. Deze client vereenvoudigt het proces van het correct vormen en verzenden van HTTP-verzoeken naar de OAuth 2.0 eindpunten aanzienlijk.
- Definieert de routes voor de app, inclusief omleidingen voor de inlog- en uitlogstromen en de OAuth 2.0 callback.
- Na een succesvolle login, slaat het de verschillende tokens op als cookies, samen met enkele minimale gebruikersinformatie die het weergeeft als HTML met hulp van getHomeHtml.js.