Roblox ให้ตัวอย่างแอป Node.js ที่แสดงวิธีใช้ OAuth 2.0 เพื่อให้ผู้ใช้ล็อกอินบัญชี Roblox ของพวกเขาและส่งข้อความไปยังประสบการณ์ของพวกเขาแอปนี้ใช้การไหลรหัสอนุญาต โดยไม่ต้องใช้รหัสอนุญาต โดยไม่มี PKCE และเหมาะสำหรับลูกค้าที่เป็นความลับเท่านั้น เช่น เซิร์ฟเวอร์ส่วนตัว
หลังจากดาวน์โหลดไฟล์ .zip แล้ว สกัดออกเป็นโฟลเดอร์ของตัวเอง
ลงทะเบียนแอป
ขั้นตอนแรกในการติดตั้งแอปคือการ ลงทะเบียนบนเว็บไซต์ Roblox และคัดลอก ID คลายและความลับไปยังสถานที่ปลอดภัยจากนั้นทำตามขั้นตอนการลงทะเบียนมาตรฐานด้วยการตั้งค่าเหล่านี้:
- ภายใต้ สิทธิ์ , เพิ่ม openid , profile และ universe-messaging-service:publish ขอบเขต
- ภายใต้ URL เปลี่ยนเส้นทาง เพิ่มการเปลี่ยนเส้นทาง http://localhost:3000/oauth/callback หากคุณต้องการใช้พอร์ตที่ไม่เป็นค่าเริ่มต้นสำหรับแอปของคุณ ให้ระบุไว้ที่นี่
ตั้งแปลงตัวแปรสภาพแวดล้อม
แทนที่จะเก็บไว้ในรหัส (ไม่แนะนำ) แอปใช้ตัวแปรสภาพแวดล้อมสำหรับรหัสลูกค้าและความลับของคุณกระบวนการเพิ่มตัวแปรสภาพแวดล้อมแตกต่างกันไปตามระบบปฏิบัติการ
บน Windows ให้รันคำสั่ง PowerShell ต่อไปนี้:
$env:ROBLOX_CLIENT_ID='your_client_id_here'$env:ROBLOX_CLIENT_SECRET='your_client_secret_here'$env:ROBLOX_PORT=3000 # Optional. Default is 3000.
บน Mac และส่วนใหญ่เป็นการกระจาย Linux ให้รันคำสั่งเหล่านี้ที่เทอร์มินัล:
export ROBLOX_CLIENT_ID=your_client_id_hereexport ROBLOX_CLIENT_SECRET=your_client_secret_hereexport ROBLOX_PORT=3000 # Optional. Default is 3000.
หากคุณระบุพอร์ตที่ไม่ใช่พอร์ตเริ่มต้นใน URL สำหรับการเปลี่ยนเส้นทางเมื่อลงทะเบียนแอปของคุณ ให้แน่ใจว่ามีการเพิ่มตัวแปร ROBLOX_PORT
ติดตั้งความขึ้นอยู่
แอปมีความขึ้นอยู่กับไม่กี่รายการที่สามารถมองเห็นได้ใน package.json เพื่อติดตั้งให้ดำเนินการ:
npm ci
เรียกใช้แอป
เพื่อเริ่มต้นแอป ให้ดำเนินการ:
npm start
จากนั้นนําทางไปที่ http://localhost:3000 (หรือพอร์ตที่ไม่เป็นค่าเริ่มต้น) ในเบราว์เซอร์เว็บ
แอปจะเปลี่ยนเส้นทางคุณไปยังหน้าจอล็อกอินของ Roblox ทันทีที่จุดนั้นคุณสามารถล็อกอิน ตรวจสอบสิทธิ์ที่แอปร้องขอ และคลิก ยืนยันและให้การเข้าถึง Roblox จะเปลี่ยนเส้นทางคุณกลับไปที่ localhost ซึ่งคุณสามารถดูได้ว่าแอปตอนนี้แสดงข้อมูลผู้ใช้ขั้นต่ำบางอย่าง ลิงก์กลับไปที่โปรไฟล์ของคุณบน Roblox และฟิลด์ที่คุณสามารถใช้เพื่อส่งข้อความไปยังประสบการณ์ของคุณ
เกี่ยวกับแอป
ในเชิงกว้าง index.js ดำเนินการด้วยคำสั่งต่อไปนี้:
- เริ่มเซิร์ฟเวอร์เว็บใหม่โดยใช้ express
- ดึงการกำหนดค่า Roblox OpenID Connect (OIDC) ซึ่งรวมถึงจุดสิ้นสุดสำหรับการอนุญาต ข้อมูลผู้ใช้ ฯลฯสำหรับข้อมูลเพิ่มเติมเกี่ยวกับจุดจบเหล่านี้ ดู การตรวจสอบ OAuth 2.0
- สร้างไคลเอนต์ Open ID ใหม่โดยใช้ openid-client และรหัสผ่านที่เก็บไว้ของคุณไคลเอนต์นี้ทำให้กระบวนการสร้างและส่งคำขอ HTTP อย่างถูกต้องง่ายขึ้นอย่างมากในการส่งไปยังจุดสิ้นสุด OAuth 2.0
- กำหนดเส้นทางสำหรับแอปรวมถึงการเปลี่ยนเส้นทางสำหรับการไหลโลจินและการออกจากระบบและการโทรกลับ OAuth 2.0
- หลังจากล็อกอินสําเร็จแล้ว จะเก็บโทเค็นต่างๆ เป็นคุกกี้ร่วมกับข้อมูลผู้ใช้บางส่วนที่แสดงเป็น HTML ด้วยความช่วยเหลือจาก getHomeHtml.js