用途:当任务聚焦于 Roblox Open Cloud 的 OAuth 2.0 委托授权时加载本技能,包括应用注册、带 PKCE 的授权码流程、令牌交换/刷新/撤销、作用域选择或 OAuth 相关错误调试。不适用于 API 密钥自动化、体验内脚本或一般 Open Cloud 端点工作(应改用 roblox-cloud)。
主要能力: 流程选择:授权码 + PKCE 适用于公共客户端(浏览器/移动端),推荐用于所有场景;机密客户端由后端保存 client_secret,绝不在前端代码中暴露;公共客户端无密钥,必须使用 PKCE。 PKCE 要点:生成 code_verifier(43–128 字符随机值)和 code_challenge(SHA-256,base64url);在 authorize 中发送 code_challenge 与 code_challenge_method=S256,在令牌交换中发送 code_verifier;每次授权尝试使用一个 verifier。 授权 URL:GET https://apis.roblox.com/oauth/v1/authorize,参数包括 client_id、redirect_uri、scope、response_type=code、code_challenge、code_challenge_method=S256、state,可选 nonce。 令牌交换:POST /oauth/v1/token,application/x-www-form-urlencoded,参数包括 grant_type=authorization_code、code、client_id、code_verifier(公共)或 client_secret(机密)。 令牌生命周期:授权码秒级、单次使用,须立即交换;访问令牌约 15 分钟,作为 Bearer 使用;刷新令牌约 90 天,每次刷新单次使用,刷新后原子替换存储的令牌;断开时用 POST /oauth/v1/token/revoke 撤销。 作用域选择:使用与端点实际需求匹配的最小作用域;openid 对应 ID token,仅在需要 profile 声明时使用 profile;中/高/严重风险是需进行最小权限审查的信号;更改作用域需要重新授权。 验证端点:GET /oauth/v1/userinfo 获取身份声明;POST /oauth/v1/token/introspect 检查令牌活动状态(非资源授权);POST /oauth/v1/token/resources 获取资源级访问权限。
关键规则:使用返回的 code 前先验证 state;刷新令牌仅限服务端使用;即使机密客户端也建议使用 PKCE;不要混用 API 密钥与 OAuth。
限制:本技能仅覆盖上述 OAuth 流程与端点,具体代码示例、API 表格与边缘情况需加载 references/full.md 获取,其他细节资料暂未提供。