Roblox 提供了一個 Node.js 範例應用程式,展示如何使用 OAuth 2.0 讓用戶登錄到他們的 Roblox 帳戶並在他們的遊戲中廣播消息。此應用程式使用 不使用 PKCE 的授權碼流程,因此僅適合機密客戶端,例如私有伺服器。
下載 .zip 文件後,將其解壓縮到一個單獨的文件夾中。
註冊應用程式
設置應用程式的第一步是 在 Roblox 網站上註冊 並將客戶端 ID 和密鑰安全地複製到某個地方。然後按照標準註冊步驟進行,設定如下:
- 在 權限 下,添加 openid、profile 和 universe-messaging-service:publish 範圍。
- 在 重定向 URL 下,添加 http://localhost:3000/oauth/callback 重定向。如果您希望為應用使用非默認端口,請在此處指定。
設置環境變量
應用程式使用環境變量來存儲客戶端 ID 和密鑰,而不是將它們存儲在代碼中(不建議這樣做)。添加環境變量的過程因操作系統而異。
在 Windows 上,運行以下 PowerShell 命令:
$env:ROBLOX_CLIENT_ID='your_client_id_here'$env:ROBLOX_CLIENT_SECRET='your_client_secret_here'$env:ROBLOX_PORT=3000 # 可選。默認為 3000。
在 Mac 和大多數 Linux 發行版上,請在終端運行以下命令:
export ROBLOX_CLIENT_ID=your_client_id_hereexport ROBLOX_CLIENT_SECRET=your_client_secret_hereexport ROBLOX_PORT=3000 # 可選。默認為 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 認證。
- 使用 openid-client 和您存儲的憑證創建一個新的 Open ID 客戶端。此客戶端顯著簡化了正確形成和發送 HTTP 請求到 OAuth 2.0 端點的過程。
- 定義應用程式的路由,包括登錄和登出流程的重定向以及 OAuth 2.0 回調。
- 登錄成功後,將各種令牌作為 Cookie 存儲,並顯示一些最基本的用戶信息,這些信息通過 getHomeHtml.js 以 HTML 格式顯示。