OAuth 2.0 示例应App

*此内容使用人工智能(Beta)翻译,可能包含错误。若要查看英文页面,请点按 此处

Roblox 提供了一个 Node.js 示例应用程序,显示如何使用 OAuth 2.0 让用户登录到他们的 Roblox 帐户并在他们的体验中发布消息。该应用使用了 授权代码流 PKCE,因此只适合用于机密客户端,例如私有服务器。


下载 .zip 文件后,将其提取到自己的文件夹。

注册应App

设置应用的第一步是在Roblox网站上注册它并将客户ID和秘密复制到安全的地方。然后,按照这些设置跟随标准注册步骤:

  1. 权限 下,添加 openid , profileuniverse-messaging-service:publish 范围。
  2. 重定向 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_here
export ROBLOX_CLIENT_SECRET=your_client_secret_here
export 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 执行以下操作:

  1. 使用 express 启动新的网站服务器。
  2. 检索 Roblox 开放ID连接(OIDC)配置,包括用于授权的端点、用户信息等了解有关这些端点的更多信息,请参阅OAuth 2.0认证
  3. 使用 openid-client 和您存储的凭据创建一个新的开放ID客户端。这个客户大幅简化了正确形式和发送 HTTP 请求到 OAuth 2.0 终端的过程。
  4. 定义应App的路由,包括登录和退出流程的重定向和 OAuth 2.0 回调。
  5. 成功登录后,将各种代币存储为饼干,以及少量用户信息,该信息以 HTML 形式显示,由 getHomeHtml.js 提供帮助。