O Roblox fornece um aplicativo de exemplo de Node.js que mostra como usar OAuth 2.0 para permitir que os usuários sejam autenticados em suas contas Roblox e transmitam mensagens em suas experiências. Este aplicativo usa o código de autorização sem PKCE e, portanto, é apenas adequado para clientes confidenciais, como servidores privados.
Depois de baixar o arquivo .zip, extraia-o para sua própria pasta.
Registrando o Aplicativo
O primeiro passo para configurar o aplicativo é registrá-lo no site do Roblox e copiar o ID do cliente e o segredo em algum lugar seguro. Em seguida, siga os passos de registro padrão com essas configurações:
- Sob <a href="/reference/Permissions">Permissões</a>, adicione o <a href="perfil">Perfil</a>, e <a href>/universe-messaging-service:publicarescopos.
- Sob Redirecionar URLs , adicione o http://localhost:3000/oauth/callback redirecionamento. Se você quiser usar um porto não padrão para o seu aplicativo, especifique-o aqui.
Configurando Variáveis de Ambiente
Ao invés de armazená-los em código (não recomendado), o aplicativo usa variáveis de ambiente para o ID e senha do seu cliente. O processo de adição de variáveis de ambiente difere por sistema operacional.
On Windows, run the following PowerShell commands:
$env:ROBLOX_CLIENT_ID='your_client_id_here'$env:ROBLOX_CLIENT_SECRET='your_client_secret_here'$env:ROBLOX_PORT=3000 # Optional. Default is 3000.
On Mac e na maioria das distribuições Linux, execute esses 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 um porto não padrão na URL de redirecionamento ao registrar seu aplicativo, certifique-se de adicionar a variável ROBLOX_PORT.
Instalando Dependências
O aplicativo tem uma dúzia de dependências, visíveis em package.json . Para instalá-las, executar:
npm ci
Executando o Aplicativo
Para iniciar o aplicativo, executar:
npm start
Então navegue para http://localhost:3000 (ou seu porto não padrão) em um navegador web.
O aplicativo imediatamente redireciona você para a tela de login do Roblox, no qual ponto você pode fazer login, verificar as permissões que o aplicativo está solicitando e clique em Confirmar e Dê Acesso .
O Roblox, em seguida, 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 suas experiências.
Sobre o Aplicativo
Em linhas gerais, index.js executa 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, see Autenticação de OAuth 2.0.
- Cria um novo cliente Open ID usando openid-client e suas credenciais armazenadas. Este cliente simplifica drasticamente o processo de formação e envio de solicitações HTTP para os endpoints OAuth 2.0.
- Define as rotas para o aplicativo, incluindo redirecionamentos para os fluxos de login e saída e o retorno de chamada OAuth 2.0.
- Depois de um login bem-sucedido, armazena os vários tokens como cookies, juntamente com alguma informação mínima do usuário que ele exibe como HTML com a ajuda de getHomeHtml.js.