Trabajar con secretos

*Este contenido se traduce usando la IA (Beta) y puede contener errores. Para ver esta página en inglés, haz clic en aquí.

Roblox ofrece una tienda de secretos para cada experiencia.Los secretos son información sensible como claves de API, contraseñas y tokens de acceso que usas para autenticarte con servicios externos.Por ejemplo, si quieres conectarte a un servicio de análisis o música de terceros, es probable que necesites usar una clave API para autenticarte con él.

Puedes copiar y pegar la clave de la API en un script o agregarla a un almacén de datos, pero esos enfoques conllevan riesgos de seguridad innecesarios.La mejor solución es usar la tienda de secretos y acceder a la clave usando un pequeño conjunto de métodos seguros.

Añadir secretos

Para vista, crear o editar secretos, debes ser el propietario de la experiencia o el propietario del grupo. Puedes tener hasta 500 secretos por experiencia.

  1. Navegue hasta el Panel del creador.

  2. Seleccione su experiencia, y luego elija secretos > crear secreto .

  3. Proporcione un nombre, el secreto y el dominio aplicable.

    • El nombre actúa como un identificador único para el secreto, por lo que recomendamos algo descriptivo.
    • Los secretos pueden tener hasta 1,024 caracteres de longitud.Las claves de API y los tokens de acceso deben provenir del proveedor de servicios, pero si el secreto es una contraseña, probablemente lo creaste tú mismo.
    • Puedes usar una sintaxis de comodín limitada para el dominio, como * para cualquier dominio (no recomendado) o *.example.com para cualquier subdominio en example.com.Los dominios específicos son aún mejores, como my.example.com .

Secretos locales

Por razones de seguridad, el almacén de secretos para cada experiencia solo está disponible para servidores de juegos en vivo o Entornos de prueba de equipo.Si intentas acceder a un secreto desde un servidor de prueba local, como después de presionar el botón Jugar en Studio, recibes un error Can't find secret with given key.

Para especificar secretos para pruebas locales, agregue objetos JSON válidos con secretos codificados en base64 en Configuración del juego.El JSON puede contener espacios, pero debe estar en una sola línea.

Local secret in the Game Settings window.

Por ejemplo, lo siguiente es la cadena codificada en base64 abcdefghijklmnopqrstuvwxyz restringida a subdominios en example.com :


{"secretName": ["YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXo=", "*.example.com"]}

Para agregar múltiples secretos, separa los valores con comas:


{"secretName1": ["dGVzdDE=", "*.example.com"],"secretName2": ["dGVzdDI=", "*.example.com"],"secretName3": ["dGVzdDM=", "*.example.com"]}

Usar secretos

Antes de usar secretos dentro de tu experiencia, debes habilitar Permitir solicitudes HTTP en la pestaña Configuración del juego Seguridad .Luego llama HttpService:GetSecret() dentro de un script:


local HttpService = game:GetService("HttpService")
local testSecret = HttpService:GetSecret("test_secret")

Una parte del atractivo de usar tiendas secretas es que no puedes imprimir accidentalmente un secreto.En lugar del propio secreto, el siguiente código produce el nombre que proporcionó al crear el secreto:


print(testSecret) --> Secret(test_secret)

No puedes manipular la cadena directamente.En cambio, el tipo de dato Secret le permite agregar un prefijo y un sufijo al secreto para ayudar a formar una URL o insertar contenido 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=username

Después de que tenga una URL con el secreto insertado, puede realizar solicitudes HTTP estándar usando métodos como HttpService:RequestAsync().Por supuesto, puedes ignorar estos métodos e insertar el secreto directamente en un encabezado, también.