O Roblox fornece um aplicativo de exemplo do Node.js que mostra como usar o OAuth 2.0 para permitir que os usuários façam login em suas contas do Roblox. Este aplicativo usa o fluxo de código de autorização sem PKCE e, portanto, só é adequado para clientes confidenciais, como servidores privados.
Depois de baixar o arquivo .zip, extraia-o para sua própria pasta.
Registrando o App
O primeiro passo para configurar o aplicativo é registrá-lo no site do Roblox e copiar o ID do cliente e mantê-lo secreto em um lugar seguro. Em seguida, siga as etapas de registro padrão com essas configurações:
- Em Permissões , adicione os openid e profile perfil.
- Em Redirecionar URLs , adicione o http://localhost:3000/oauth/callback redirecionamento. Se você quiser usar uma porta não padrão para o seu aplicativo, especifique-o aqui.
Definindo Variáveis de Ambiente
Em vez de armazená-los em código (não recomendado), o aplicativo usa variáveis de ambiente para o seu ID de cliente e segredo. O processo de adicionar variáveis de ambiente difere de acordo com o sistema operacional.
No Windows, corra os seguintes comandos do 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.
No Mac e na maioria das distribuições Linux, corra estes comandos no terminal:
export ROBLOX_CLIENT_ID=your_client_id_hereexport ROBLOX_CLIENT_SECRET=your_client_secret_hereexport ROBLOX_PORT=3000 # Optional. Default is 3000.
Se você especificou uma porta não padrão no URL de redirecionamento ao registrar seu aplicativo, certifique-se de adicionar a variável ROBLOX_PORT.
Instalando Dependências
O aplicativo tem um punhado de dependências, visíveis em package.json . Para instalá-los, executar:
npm ci
Rodando o App
Para iniciar o aplicativo, executar:
npm start
Em seguida, navegue até http://localhost:3000 (ou sua porta não padrão) em um navegador da web.
O aplicativo imediatamente o redireciona para a tela de login do Roblox, onde você pode fazer login, verificar as permissões que o aplicativo está solicitando e clicar em Confirmar e conceder acesso .
O Roblox então o redireciona de volta para localhost , onde você pode ver que o aplicativo agora exibe algumas informações mínimas do usuário e um link de volta ao seu perfil no Roblox.
Sobre o Aplicativo
Em golpes largos, index.js realiza as seguintes operações:
- Inicia um novo servidor web usando express .
- Obtém a configuração do Roblox OpenID Connect (OIDC), que inclui endpoints para autorização, informações do usuário, etc. Para mais informações sobre esses endpoints, consulte Autenticação OAuth 2.0.
- Cria um novo cliente Open ID usando openid-client e suas credenciais armazenadas. Este cliente simplifica drasticamente o processo de formar e enviar solicitações HTTP para os endpoints OAuth 2.0.
- Define as rotas para o aplicativo, incluindo redirecionamentos para os fluxos de login e logout e a chamada de retorno de chamadado OAuth 2.0.
- Após um login bem-sucedido, armazena os vários tokens como cookies, juntamente com algumas informações mínimas do usuário que são exibidas como HTML com a ajuda de getHomeHtml.js .