Travailler avec des secrets

*Ce contenu est traduit en utilisant l'IA (Beta) et peut contenir des erreurs. Pour consulter cette page en anglais, clique ici.

Roblox offre une boutique de secrets pour chaque expérience.Les secrets sont des informations sensibles comme les clés API, les mots de passe et les jetons d'accès que vous utilisez pour vous authentifier auprès de services externes.Par exemple, si vous souhaitez vous connecter à un service d'analyse ou de musique tiers, vous devez probablement utiliser une clé API pour vous authentifier avec lui.

Vous pouvez copier et coller la clé de l'API dans un script ou l'ajouter à un boutiquede données, mais ces approches comportent des risques de sécurité inutiles.La meilleure solution consiste à utiliser le magasin de secrets et à accéder à la clé en utilisant un petit ensemble de méthodes sécurisées.

Ajouter des secrets

Pour afficher, créer ou modifier des secrets, vous devez être le propriétaire de l'expérience ou le propriétaire du groupe. Vous pouvez avoir jusqu'à 500 secrets par expérience.

  1. Sélectionnez votre expérience, puis choisissez secrets > créer un secret .

  2. Fournir un nom, le secret et le domaine applicable.

    • Le nom agit comme un identifiant unique pour le secret, nous recommandons donc quelque chose de descriptif.
    • Les secrets peuvent comporter jusqu'à 1 024 caractères de long.Les clés API et les jetons d'accès devraient provenir du fournisseur de services, mais si le secret est un mot de passe, vous l'avez probablement créé vous-même.
    • Vous pouvez utiliser une syntaxe de sauvette limitée pour le domaine, telle que * pour tout domaine (non recommandé) ou *.example.com pour tout sous-domaine à example.com .Les domaines spécifiques sont encore meilleurs, comme my.example.com .

Secrets locaux

Pour des raisons de sécurité, le stockage des secrets pour chaque expérience n'est disponible que pour les serveurs de jeu en direct ou Test d'équipe environnements.Si vous essayez d'accéder à un secret à partir d'un serveur de test local, comme après avoir appuyé sur le bouton Jouer dans Studio, vous recevez une erreur Can't find secret with given key.

Pour spécifier des secrets pour les tests locaux, ajoutez des objets JSON valides avec des secrets codés en base64 dans paramètres de jeu.Le JSON peut contenir des espaces, mais doit être sur une seule ligne.

Local secret in the Game Settings window.

Par exemple, ce qui suit est la chaîne encodée en base64 abcdefghijklmnopqrstuvwxyz restreinte aux sous-domaines à example.com :


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

Pour ajouter plusieurs secrets, séparez les valeurs avec des virgules :


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

Utiliser des secrets

Avant d'utiliser des secrets dans votre expérience, vous devez activer autoriser les demandes HTTP dans l'onglet paramètres de jeu sécurité .Ensuite, appelez HttpService:GetSecret() dans un script :


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

Une partie du charme de l'utilisation des magasins secrets est que vous ne pouvez pas accidentellement imprimer un secret.Au lieu du secret lui-même, le code suivant produit le nom que vous avez fourni lors de la création du secret :


print(testSecret) --> Secret(test_secret)

Vous ne pouvez pas manipuler la chaîne directement.Au lieu de cela, le type de données Secret laisse vous ajouter un préfixe et un suffixe au secret pour aider à former une URL ou insérer du contenu comme 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

Une fois que vous avez une URL avec le secret inséré, vous pouvez faire des demandes HTTP standard en utilisant des méthodes comme HttpService:RequestAsync().Bien sûr, vous pouvez ignorer ces méthodes et insérer le secret directement dans une en-tête, aussi.