Roblox fornece um aplicativo de exemplo em Node.js que mostra como usar OAuth 2.0 para permitir que os usuários façam login em suas contas Roblox e transmitam mensagens em seus jogos. Este aplicativo usa o fluxo de código de autorização sem PKCE e, portanto, é adequado apenas para clientes confidenciais, como servidores privados.
Após fazer o download do arquivo .zip, extraia-o para sua própria pasta.
Registrar o aplicativo
O primeiro passo para configurar o aplicativo é registrá-lo no site Roblox e copiar o ID do cliente e o segredo em um local seguro. Em seguida, siga os passos padrão de registro com estas configurações:
- Em Permissões, adicione os escopos openid, profile e universe-messaging-service:publish.
- Em URLs de Redirecionamento, adicione o http://localhost:3000/oauth/callback redirecionar. Se você deseja usar uma porta não padrão para seu aplicativo, especifique-a aqui.
Definir variáveis de ambiente
Em vez de armazená-las no código (não recomendado), o aplicativo utiliza variáveis de ambiente para seu ID do cliente e segredo. O processo para adicionar variáveis de ambiente difere de acordo com o sistema operacional.
No Windows, execute os seguintes comandos do PowerShell:
$env:ROBLOX_CLIENT_ID='seu_client_id_aqui'$env:ROBLOX_CLIENT_SECRET='seu_client_secret_aqui'$env:ROBLOX_PORT=3000 # Opcional. O padrão é 3000.
No Mac e na maioria das distribuições Linux, execute estes comandos no terminal:
export ROBLOX_CLIENT_ID=seu_client_id_aquiexport ROBLOX_CLIENT_SECRET=seu_client_secret_aquiexport ROBLOX_PORT=3000 # Opcional. O padrão é 3000.
Se você especificou uma porta não padrão na URL de redirecionamento ao registrar seu aplicativo, não se esqueça de adicionar a variável ROBLOX_PORT.
Instalar dependências
O aplicativo possui algumas dependências, visíveis em package.json. Para instalá-las, execute:
npm ci
Executar o aplicativo
Para iniciar o aplicativo, execute:
npm start
Em seguida, navegue até http://localhost:3000 (ou sua porta não padrão) em um navegador da web.
O aplicativo redireciona você imediatamente 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.
Roblox então redireciona você de volta para localhost, onde você pode ver que o aplicativo agora exibe algumas informações mínimas do usuário, um link de volta para o seu perfil no Roblox e campos que você pode usar para transmitir mensagens em seus jogos.
Sobre o aplicativo
Em linhas gerais, index.js realiza as seguintes operações:
- Inicia um novo servidor web usando express.
- Recupera 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, veja autenticação OAuth 2.0.
- Cria um novo cliente Open ID usando openid-client e suas credenciais armazenadas. Este cliente simplifica dramaticamente o processo de formação e envio adequado de solicitações HTTP aos endpoints OAuth 2.0.
- Define as rotas para o aplicativo, incluindo redirecionamentos para os fluxos de login e logout e o callback OAuth 2.0.
- Após um login bem-sucedido, armazena os vários tokens como cookies, junto com algumas informações mínimas do usuário que exibe em HTML com a ajuda de getHomeHtml.js.