O Roblox fornece uma amostra de aplicativo Node.js que mostra como usar o OAuth 2.0 para permitir que os usuários façam login em suas contas do Roblox e transmitam mensagens através de suas experiências.Este aplicativo usa o fluxo de código de autorização sem PKCE e, portanto, só é adequado para clientes confidenciais, como servidores privados.
Após baixar o arquivo .zip, extraia-o para sua própria pasta.
Registre 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.Então, siga os passos de registro padrão com essas configurações:
- Abaixo de Permissões , adicione os openid, profile e universe-messaging-service:publish escopos.
- Abaixo de Redirecionar URLs , adicione o redirecionamento http://localhost:3000/oauth/callback. Se você quiser usar um porto não padrão para o seu aplicativo, especifique-o aqui.
Definir variáveis de ambiente
Em vez de armazená-los em código (não recomendado), o aplicativo usa variáveis de ambiente para o ID e o segredo do seu cliente.O processo de adição de variáveis de ambiente difere por sistema operacional.
On Windows, execute 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, 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.
Instale dependências
O aplicativo tem uma dúzia de dependências, visíveis em package.json . Para instalá-las, executar:
npm ci
Execute 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 da web.
O aplicativo redireciona você imediatamente para a tela de login do Roblox, na qual você pode fazer login, verificar as permissões que o aplicativo está solicitando e clicar em Confirme e dê acesso .
O 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 ao seu perfil no Roblox e campos que você pode usar para transmitir mensagens através de suas experiências.
Sobre o aplicativo
Em grandes traços, 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 pontos finais para autorização, informações do usuário, etc.Para mais informações sobre esses pontos finais, veja autenticação OAuth 2.0.
- Cria um novo cliente de Open ID usando openid-client e suas credenciais armazenadas.Este cliente simplifica dramaticamente o processo de formação e envio de solicitações HTTP adequadas aos pontos finais do OAuth 2.0.
- Define as rotas para o aplicativo, incluindo redirecionamentos para os fluxos de login e logout e o 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 ele exibe como HTML com a ajuda de getHomeHtml.js.