Roblox 提供了一個 Node.js 樣板應用程式,展示如何使用 OAuth 2.0 讓使用者登入他們的 Roblox 帳戶並在他們的體驗中傳送訊息。此應用程式使用 授權碼流程 無 PKCE,因此只適合保密客戶,例如私人伺服器。
下載 .zip 檔案後,將其提取到自己的目錄。
註冊應用程App
設定應用程式的第一步是在 Roblox 網站上註冊它,並將客戶端 ID 和秘密複製到安全的地方。然後,使用這些設定跟隨標準註冊步驟:
- 在 權限 下,添加 openid、profile 和 universe-messaging-service:publish 範圍。
- 在 重定向URL 下,添加http://localhost:3000/oauth/callback。如果您想使用非預設端口為應用程式提供App務,請在此處指定。
設定環境變數
而不是將它們儲存在代碼中(不建議),應用程式使用環境變量來儲存您的客戶ID和秘密。添加環境變數的過程會因操作系統而異。
在 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.
如果您在註冊應用程App時指定非預設端口在重定向URL中,請務必添加 ROBLOX_PORT 變量。
安裝依存性
應用程式有少數依存關係,可在 package.json 中看到。要安裝它們,請執行:
npm ci
執行應用程App
要啟動應用程App,請執行:
npm start
然後在網頁瀏覽器中導航到 http://localhost:3000 (或非預設端口)。
應用程式立即重新導向您到 Roblox 登錄畫面,在此點您可以登入、查看應用程式要求的許可,然後點擊 確認並提供存取權限 。
Roblox 然後將您重新導向到 localhost ,在那裡您可以看到應用程式現在顯示了一些最小用戶信息、返回到 Roblox 上的鏈接以及您可以使用的欄位來傳送訊息到您的體驗。
關於應用程App
大致來說,index.js 執行以下操作:
- 使用 express 啟動新網站伺服器。
- 取得 Roblox 開放身份認證 (OIDC) 配置,包括授權端點、使用者資訊等。有關這些終端點的更多資訊,請參閱 OAuth 2.0 認證。
- 使用 openid-client 和您儲存的資格來創建新的開放ID客戶。這個客戶大幅簡化了正確形式和傳送 HTTP 請求到 OAuth 2.0 終端點的過程。
- 定義應用程App的路徑,包括登錄和登出流程的重定向和 OAuth 2.0 回調。
- 成功登入後,將各種代幣存為餅乾,以及一些最小的使用者資訊,該資訊以 HTML 幫助顯示,getHomeHtml.js 協助提供。