Roblox proporciona una aplicación de muestra de Node.js que muestra cómo usar OAuth 2.0 para permitir que los usuarios inicien sesión en sus cuentas de Roblox. Esta aplicación utiliza el flujo de código de autorización sin PKCE y, por lo tanto, solo es adecuada para clientes confidenciales, como servidores privados.
Después de descargar el archivo .zip, extráelo a su propia carpeta.
Registrando la aplicación
El primer paso para configurar la aplicación es registrarla en el sitio web de Roblox y copiar el ID del cliente y mantenerlo secreto en un lugar seguro. Luego sigue los pasos de registro estándar con estas configuraciones:
- En Permisos , añade los openid y profile perfil.
- En Redirigir URL , agregue el http://localhost:3000/oauth/callback redireccionamiento. Si desea usar un puerto no predeterminado para su aplicación (app), especifíquelo aquí.
Configurando Variables de Entorno
En lugar de almacenarlas en código (no se recomienda), la aplicación usa variables de entorno para su ID de cliente y secreto. El proceso para agregar variables de entorno difiere según el sistema operativo.
En Windows, ejecute los siguientes comandos de PowerShell:
$env:ROBLOX_CLIENT_ID='your_client_id_here'$env:ROBLOX_CLIENT_SECRET='your_client_secret_here'$env:ROBLOX_PORT=3000 # Optional. Default is 3000.
En Mac y la mayoría de las distribuciones de Linux, ejecute estos comandos en la terminal:
export ROBLOX_CLIENT_ID=your_client_id_hereexport ROBLOX_CLIENT_SECRET=your_client_secret_hereexport ROBLOX_PORT=3000 # Optional. Default is 3000.
Si especificó un puerto no predeterminado en la URL de redirección al registrar su aplicación (app), asegúrese de agregar la variable ROBLOX_PORT.
Instalando Dependencias
La aplicación tiene un puñado de dependencias, visibles en package.json . Para instalarlos, ejecutar:
npm ci
Ejecutando la aplicación
Para iniciar la aplicación (app), ejecutar:
npm start
Luego navegue hasta http://localhost:3000 (o su puerto no predeterminado) en un navegador web.
La aplicación lo redirige inmediatamente a la pantalla de inicio de sesión de Roblox, en el que puede iniciar sesión, verificar los permisos que está solicitando la aplicación y hacer clic en Confirmar y otorgar acceso .
Roblox luego te redirige de vuelta a localhost , donde puedes ver que la aplicación ahora muestra una información mínima del usuario y un enlace de vuelta a tu perfil en Roblox.
Sobre la aplicación
En golpes anchos, index.js realiza las siguientes operaciones:
- Inicia un nuevo servidor web usando express .
- Recupera la configuración de Roblox OpenID Connect (OIDC), que incluye puntos finales para la autorización, información de usuario, etc. Para obtener más información sobre estos puntos finales, consulte Autenticación OAuth 2.0.
- Crea un nuevo cliente Open ID usando openid-client y tus credenciales almacenadas. Este cliente simplifica drásticamente el proceso de formar y enviar solicitudes HTTP a los puntos finales de OAuth 2.0.
- Define las rutas para la aplicación (app), incluidos los redireccionamientos para los flujos de inicio de sesión y cierre de sesión y la devolución de llamada de OAuth 2.0.
- Después de un inicio de sesión exitoso, almacena los varios tokens como cookies, junto con una información mínima del usuario que se muestra como HTML con la ayuda de getHomeHtml.js .