Roblox oferuje sklep z sekretami dla każdego doświadczenia.Sekrety to wrażliwe informacje, takie jak klucze API, hasła i tokeny dostępu, których używasz do uwierzytelniania z usługami zewnętrznymi.Na przykład, jeśli chcesz połączyć się z usługą analityczną lub muzyczną strony trzeciej, prawdopodobnie musisz użyć klucza API, aby się z nią uwierzyć.
Możesz skopiować i wkleić klucz API do skryptu lub dodać go do magazynu danych, ale te podejścia ponoszą niepotrzebne ryzyko bezpieczeństwa.Lepszym rozwiązaniem jest skorzystanie ze sklepu z sekretami i uzyskanie dostępu do klucza za pomocą małego zestawu bezpiecznych metod.
Dodaj sekrety
Aby zobaczyć, utworzyć lub edytować sekrety, musisz być właścicielem doświadczenia lub właścicielem grupy. Możesz mieć do 500 sekretów na doświadczenie.
Przejdź do Pulpitu nawigacyjnego twórcy.
Wybierz swoje doświadczenie, a następnie wybierz Sekrety > Twórz sekret .
Podaj nazwę, sekret i odpowiednią domenę.
- Nazwa działa jako unikalny identyfikator dla sekretu, więc polecamy coś opisowego.
- Sekrety mogą mieć do 1,024 znaków długości.Klucze API i tokeny dostępu powinny pochodzić od dostawcy usług, ale jeśli sekret jest hasłem, prawdopodobnie stworzyłeś go sam.
- Możesz użyć ograniczonej słownictwa dzikich znaków dla domeny, takich jak * dla dowolnej domeny (nie zalecane) lub *.example.com dla dowolnej poddomeny na example.com.Specyficzne domeny są jeszcze lepsze, takie jak my.example.com .
Tajemnice lokalne
Ze względów bezpieczeństwa sekrety przechowywane dla każdego doświadczenia są dostępne tylko dla serwerów gier na żywo lub środowisk Test zespołu.Jeśli próbujesz uzyskać tajemnicę z lokalnego serwera testowego, takiego jak po naciśnięciu przycisku Graj w Studio, otrzymujesz błąd Can't find secret with given key.
Aby określić sekrety do lokalnego testowania, dodaj ważne obiekty JSON z sekretami zakodowanymi w Base64 w Ustawieniach gry.JSON może zawierać spacje, ale musi być na jednej linii.

Na przykład, poniższy jest łańcuch zaszyfrowany za pomocą base64 abcdefghijklmnopqrstuvwxyz ograniczony do poddomen na example.com :
{"secretName": ["YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXo=", "*.example.com"]}
Aby dodać wiele sekretów, oddziel wartości za pomocą przecinków:
{"secretName1": ["dGVzdDE=", "*.example.com"],"secretName2": ["dGVzdDI=", "*.example.com"],"secretName3": ["dGVzdDM=", "*.example.com"]}
Użyj sekretów
Zanim użyjesz sekretów w swoim doświadczeniu, musisz włączyć Pozwolenie na żądania HTTP w zakładce Ustawienia gry Bezpieczeństwo .Następnie wezwij HttpService:GetSecret() w ramach skryptu:
local HttpService = game:GetService("HttpService")local testSecret = HttpService:GetSecret("test_secret")
Częścią apelu o korzystanie ze sklepów tajnych jest to, że nie możesz przypadkowo wydrukować sekretu.Zamiast samego sekretu, następujący kod wyświetla nazwę, którą podałeś podczas tworzenia sekretu:
print(testSecret) --> Secret(test_secret)
Nie możesz bezpośrednio manipulować ciągiem.Zamiast tego typ danych Secret pozwala dodać prefiks i sufiks do sekretu, aby pomóc w utworzeniu URL lub wstawić treść taką jak 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
Po dodaniu URL z sekretem możesz wysyłać standardowe żądania HTTP za pomocą metod takich jak HttpService:RequestAsync().Oczywiście możesz ignorować te metody i wstawić sekret bezpośrednio do nagłówka, również.