Roblox มี ร้านค้าความลับ สำหรับแต่ละเกม ความลับคือข้อมูลที่ละเอียดอ่อน เช่น API keys, รหัสผ่าน และโทเค็นการเข้าถึงที่คุณใช้ในการตรวจสอบสิทธิ์กับบริการภายนอก ตัวอย่างเช่น หากคุณต้องการเชื่อมต่อกับบริการวิเคราะห์หรือบริการเพลงของบุคคลที่สาม คุณอาจต้องใช้ API key เพื่อทำการตรวจสอบสิทธิ์กับมัน
คุณสามารถคัดลอกและวาง API key ลงในสคริปต์หรือเพิ่มลงในที่เก็บข้อมูล แต่แนวทางเหล่านั้นมีความเสี่ยงด้านความปลอดภัยที่ไม่จำเป็น วิธีที่ดีกว่าคือการใช้ร้านค้าความลับและเข้าถึงคีย์โดยใช้ชุดวิธีที่ปลอดภัยเพียงเล็กน้อย
เพิ่มความลับ
ในการดู สร้าง หรือแก้ไขความลับ คุณต้องเป็นเจ้าของเกมหรือเจ้าของกลุ่ม คุณสามารถมีความลับได้สูงสุด 500 รายการต่อเกม
ไปที่ Creator Dashboard
เลือกเกมของคุณ จากนั้นเลือก Secrets ⟩ Create Secret
ป้อนชื่อ ความลับ และโดเมนที่เกี่ยวข้อง
- ชื่อทำหน้าที่เป็นตัวระบุที่ไม่ซ้ำกันสำหรับความลับ ดังนั้นเราขอแนะนำให้ใช้ชื่อที่มีความหมาย
- ความลับสามารถมีความยาวได้สูงสุด 1,024 ตัวอักษร API keys และโทเค็นการเข้าถึงควรมาจากผู้ให้บริการ แต่ถ้าความลับเป็นรหัสผ่าน คุณอาจสร้างมันขึ้นมาเอง
- คุณสามารถใช้ไวยากรณ์ wildcard ที่จำกัดสำหรับโดเมน เช่น * สำหรับโดเมนใด ๆ (ไม่แนะนำ) หรือ *.example.com สำหรับซับโดเมนใด ๆ ที่ example.com โดเมนเฉพาะจะดีกว่า เช่น my.example.com
ความลับในท้องถิ่น
ด้วยเหตุผลด้านความปลอดภัย ร้านค้าความลับสำหรับแต่ละเกมจะมีให้เฉพาะเซิร์ฟเวอร์ที่ใช้งานอยู่หรือ การทดสอบร่วมกัน หากคุณพยายามเข้าถึงความลับในระหว่าง การทดสอบเล่นในท้องถิ่น คุณจะได้รับข้อผิดพลาด Can't find secret with given key คุณจะได้รับข้อผิดพลาดที่เหมือนกันหากคุณพยายามเข้าถึงความลับจากสคริปต์ของไคลเอนต์
ในการระบุความลับสำหรับการทดสอบในท้องถิ่น ให้ไปที่ Studio จากนั้นไปที่ File ⟩ Experience Settings ⟩ Security คุณสามารถสร้างความลับใหม่และแก้ไขหรือลบความลับที่มีอยู่ในส่วน Local Secrets
ใช้ความลับ
ก่อนที่จะใช้ความลับภายในเกมของคุณ คุณต้องเปิดใช้งาน Allow HTTP Requests ในส่วน Security ของหน้าต่าง File ⟩ Experience Settings ของ 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 มาตรฐานโดยใช้วิธีการเช่น HttpService:RequestAsync() แน่นอนว่าคุณสามารถละเลยวิธีการเหล่านี้และแทรกความลับโดยตรงลงในส่วนหัวด้วย