Roblox oferece um armazenamento de segredos para cada jogo. Segredos são informações sensíveis, como chaves de API, senhas e tokens de acesso que você usa para autenticar com serviços externos. Por exemplo, se você quiser se conectar a um serviço de análise ou música de terceiros, provavelmente precisará usar uma chave de API para se autenticar.
Você poderia copiar e colar a chave de API em um script ou adicioná-la a um armazenamento de dados, mas essas abordagens apresentam riscos de segurança desnecessários. A melhor solução é usar o armazenamento de segredos e acessar a chave usando um pequeno conjunto de métodos seguros.
Adicionar segredos
Para visualizar, criar ou editar segredos, você deve ser o proprietário do jogo ou o proprietário do grupo. Você pode ter até 500 segredos por jogo.
Navegue até o Painel do Criador.
Selecione seu jogo e, em seguida, selecione Segredos ⟩ Criar Segredo.
Insira um nome, o segredo e o domínio aplicável.
- O nome atua como um identificador exclusivo para o segredo, então recomendamos algo descritivo.
- Os segredos podem ter até 1.024 caracteres de comprimento. Chaves de API e tokens de acesso devem vir do provedor de serviços, mas se o segredo for uma senha, você provavelmente a criou você mesmo.
- Você pode usar uma sintaxe de curinga limitada para o domínio, como * para qualquer domínio (não recomendado) ou *.example.com para qualquer subdomínio em example.com. Domínios específicos são ainda melhores, como my.example.com.
Segredos locais
Por razões de segurança, o armazenamento de segredos para cada jogo está disponível apenas em servidores ao vivo ou em ambientes de teste colaborativo. Se você tentar acessar um segredo durante o teste local, você receberá um erro Não foi possível encontrar o segredo com a chave fornecida. Você receberá um erro idêntico se tentar acessar segredos de um script do cliente.
Para especificar segredos para testes locais, vá para o Studio e, em seguida, vá para Arquivo ⟩ Configurações da Experiência ⟩ Segurança. Você pode criar novos segredos e editar ou excluir segredos existentes na seção Segredos Locais.
Usar segredos
Antes de usar segredos dentro do seu jogo, você deve habilitar Permitir Solicitações HTTP na seção Segurança da janela Arquivo ⟩ Configurações da Experiência do Studio. Em seguida, chame HttpService:GetSecret() dentro de um script do servidor:
local HttpService = game:GetService("HttpService")
local testSecret = HttpService:GetSecret("test_secret")Parte do apelo de usar armazenamentos de segredos é que você não pode acidentalmente imprimir um segredo. Em vez do segredo em si, o seguinte código imprime o nome que você forneceu ao criar o segredo:
print(testSecret) --> Secret(test_secret)Você não pode manipular a string diretamente. Em vez disso, o tipo de dado Secret permite que você adicione um prefixo e um sufixo ao segredo para ajudar a formar uma URL ou inserir conteúdo como Bearer:
local HttpService = game:GetService("HttpService")
local testSecret = HttpService:GetSecret("test_secret")
local prefix = "https://my.example.com/endpoint?apiKey="
local suffix = "&user=username"
local url = testSecret:AddPrefix(prefix)
url = url:AddSuffix(suffix)
print(url) --> https://my.example.com/endpoint?apiKey=Secret(test_secret)&user=usernameDepois de ter uma URL com o segredo inserido, você pode fazer solicitações HTTP padrão usando métodos como HttpService:RequestAsync(). Claro, você pode ignorar esses métodos e inserir o segredo diretamente em um cabeçalho também.