Roblox มี ที่เก็บความลับ สำหรับแต่ละเกม ความลับคือข้อมูลที่ละเอียดอ่อนเช่น กุญแจ API, รหัสผ่าน, และโทเค็นการเข้าถึงที่คุณใช้ในการตรวจสอบสิทธิ์กับบริการภายนอก ตัวอย่างเช่น หากคุณต้องการเชื่อมต่อกับบริการวิเคราะห์หรือเสียงของบุคคลที่สาม คุณอาจต้องใช้กุญแจ API เพื่อทำการตรวจสอบสิทธิ์กับมัน
คุณอาจคัดลอกและวางกุญแจ API ลงในสคริปต์หรือเพิ่มมันลงในที่เก็บข้อมูล แต่แนวทางเหล่านั้นมีความเสี่ยงด้านความปลอดภัยที่ไม่จำเป็น วิธีแก้ปัญหาที่ดีกว่าคือการใช้ที่เก็บความลับและเข้าถึงกุญแจโดยใช้ชุดวิธีการที่ปลอดภัยเล็กน้อย
เพิ่มความลับ
ในการดู สร้าง หรือแก้ไขความลับ คุณต้องเป็นเจ้าของเกมหรือเจ้าของกลุ่ม คุณสามารถมีความลับได้สูงสุด 500 รายการต่อเกม
ไปที่ Creator Dashboard.
เลือกเกมของคุณ จากนั้นเลือก ความลับ ⟩ สร้างความลับ.
ระบุชื่อ ความลับ และโดเมนที่เกี่ยวข้อง
- ชื่อทำหน้าที่เป็นตัวระบุที่ไม่ซ้ำกันสำหรับความลับ ดังนั้นเราขอแนะนำให้ใช้ชื่อที่มีความหมาย
- ความลับสามารถมีความยาวสูงสุด 1,024 อักขระ กุญแจ API และโทเค็นการเข้าถึงควรมาจากผู้ให้บริการ แต่หากความลับเป็นรหัสผ่าน คุณน่าจะสร้างมันขึ้นมาเอง
- คุณสามารถใช้ไวยากรณ์ wildcard ที่จำกัดสำหรับโดเมน เช่น * สำหรับทุกโดเมน (ไม่แนะนำ) หรือ *.example.com สำหรับทุก Subdomain ที่ example.com โดเมนที่ระบุเฉพาะดียิ่งกว่า เช่น my.example.com
ความลับในท้องถิ่น
ด้วยเหตุผลด้านความปลอดภัย ที่เก็บความลับสำหรับแต่ละเกมจะมีให้เฉพาะในเซิร์ฟเวอร์สดหรือสภาพแวดล้อมการทดสอบร่วม collaborative testing หากคุณพยายามเข้าถึงความลับในระหว่าง การทดสอบเล่นในท้องถิ่น คุณจะได้รับข้อผิดพลาดว่า Can't find secret with given key คุณจะได้รับข้อผิดพลาดเดียวกันหากคุณพยายามเข้าถึงความลับจากสคริปต์ของไคลเอนต์
ในการระบุความลับสำหรับการทดสอบในท้องถิ่น ให้ไปที่ Studio และไปที่ ไฟล์ ⟩ การตั้งค่าประสบการณ์ ⟩ ความปลอดภัย คุณสามารถสร้างความลับใหม่และแก้ไขหรือถอดถอนความลับที่มีอยู่ในส่วน ความลับ


ใช้ความลับ
ก่อนใช้ความลับภายในเกมของคุณ คุณต้องเปิดใช้งาน อนุญาต HTTP Requests ในส่วน ความปลอดภัย ของหน้าต่าง ไฟล์ ⟩ การตั้งค่าประสบการณ์ ใน Studio จากนั้นเรียกใช้งาน HttpService:GetSecret() ในสคริปต์เซิร์ฟเวอร์:
local HttpService = game:GetService("HttpService")local testSecret = HttpService:GetSecret("test_secret")
ส่วนหนึ่งของเสน่ห์ในการใช้ที่เก็บความลับคือคุณไม่สามารถพิมพ์ความลับโดยบังเอิญ แทนที่ของความลับเอง โค้ดต่อไปนี้จะพิมพ์ชื่อที่คุณระบุเมื่อสร้างความลับ:
print(testSecret) --> Secret(test_secret)
คุณไม่สามารถจัดการกับสตริงโดยตรง แทนที่ Secret ชนิดข้อมูลจะช่วยให้คุณเพิ่มคำนำหน้าและคำต่อท้ายไปยังความลับเพื่อช่วยในการสร้าง URL หรือแทรกเนื้อหาเช่น 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
หลังจากที่คุณมี URL ที่แทรกความลับแล้ว คุณสามารถทำการ HTTP requests โดยใช้วิธีการเช่น HttpService:RequestAsync() แน่นอน คุณสามารถละเว้นวิธีการเหล่านี้และแทรกความลับโดยตรงลงใน header ได้ด้วยเช่นกัน