roblox-oauth
Original:🇺🇸 English
Translated
Use for Roblox OAuth 2.0 work: registering an OAuth app, choosing confidential versus public client flows, implementing authorization code flow with PKCE, handling authorization callbacks and token refresh safely, selecting minimal scopes for Open Cloud access, and troubleshooting OAuth-specific auth failures.
18installs
Added on
NPX Install
npx skill4agent add tabooharmony/roblox-brain roblox-oauthTags
Translated version includes tags in frontmatterSKILL.md Content
View Translation Comparison →roblox-oauth
When to Use
Use this skill when the task is mainly about Roblox OAuth 2.0 delegated authorization for Open Cloud:
- Registering or configuring an OAuth app in Creator Dashboard.
- Choosing between confidential and public client implementations.
- Building the authorization code flow, especially with PKCE.
- Constructing authorization URLs and handling redirect callbacks.
- Exchanging authorization codes, refreshing tokens, introspecting tokens, or revoking sessions.
- Picking the minimum OAuth scopes for a user-authorized integration.
- Validating which resources a token can access after user consent.
- Setting up localhost or sample-app-style development for OAuth testing.
- Debugging OAuth-specific errors, redirect mismatches, token misuse, or scope failures.
Do not use this skill when the task is mainly about:
- General Open Cloud request construction, API keys, webhooks, or non-OAuth cloud automation.
- In-experience scripting architecture, remotes, replication, or gameplay code.
- DataStore or MemoryStore design.
Decision Rules
- Use this skill if the integration needs user-granted or creator-granted delegated access rather than server-owned API keys.
- Prefer authorization code flow with PKCE for all clients and require PKCE for public clients.
- Treat browser and mobile apps as public clients that cannot safely hold a client secret.
- Treat apps with a secure backend as confidential clients and keep the client secret server-side only.
- Request the minimum scopes needed for the app's actual function.
- Add when the app needs an ID token, and add
openidonly when it truly needs profile claims.profile - If the task shifts to endpoint selection, request shaping, rate limits, or webhooks rather than OAuth mechanics, hand off to .
roblox-cloud - If the task shifts to in-experience runtime architecture or persistence design, hand off to the appropriate Roblox skill.
- If a request mixes OAuth with out-of-scope architecture, answer only the OAuth portion and explicitly exclude the rest.
Instructions
- Confirm the OAuth use case:
- User- or creator-delegated access to Open Cloud resources.
- App type: confidential or public.
- Whether identity is needed in addition to API access.
- Register or review the app configuration:
- Ensure the developer is ID verified if they need to register and publish apps.
- Record the client ID.
- Store the client secret immediately and securely if the app is confidential, because Roblox only shows it once.
- Add only the necessary scopes.
- Add exact redirect URLs for production and local development.
- Design the flow before coding:
- Use authorization code flow.
- Use PKCE for all clients; it is mandatory for public clients.
- Generate a fresh high-entropy per authorization attempt.
state - Generate a fresh and
code_verifierper authorization attempt.code_challenge - Use when OIDC identity binding is relevant.
nonce
- Build the authorization request correctly:
- Send users to .
https://apis.roblox.com/oauth/v1/authorize - Include ,
client_id,redirect_uri, andscope.response_type=code - Include and
code_challengefor PKCE.code_challenge_method=S256 - Do not expose a confidential client secret in browser or mobile code.
- Send users to
- Handle the callback defensively:
- Verify the returned before using the
state.code - Handle both success () and failure (
code,error) query parameters.error_description - Treat the authorization code as short-lived and single-use.
- Verify the returned
- Exchange the code for tokens at :
POST /oauth/v1/token- Use .
application/x-www-form-urlencoded - Send the code, client ID, grant type, and either or confidential-client credentials.
code_verifier - Store refresh tokens only on trusted server-side systems.
- Use
- Manage token lifecycle explicitly:
- Access tokens last about 15 minutes.
- Refresh tokens last about 90 days and are single-use for refresh.
- Replace the stored refresh token atomically after every successful refresh response.
- Revoke sessions with when disconnecting an app.
POST /oauth/v1/token/revoke
- Validate what the token can actually do:
- Use for identity claims.
GET /oauth/v1/userinfo - Use when the app must confirm resource-level access granted by the user.
POST /oauth/v1/token/resources - Use only for token activity and claims; it is not a substitute for resource authorization checks.
POST /oauth/v1/token/introspect
- Use
- Keep scope and risk tight:
- Match scopes to actual endpoints and resource ownership needs.
- Treat medium, high, and critical endpoint categories as a least-privilege warning signal during design and review.
- Avoid expanding the skill into general Open Cloud endpoint implementation.
- Keep the response inside scope:
- Focus on app registration, auth flow design, tokens, scopes, local development, and OAuth-specific errors.
- Do not drift into API-key-first cloud integrations, gameplay architecture, or data-service design.
Using References
- Open first for roles, grant type choice, and OIDC basics.
references/oauth-overview.md - Open when the task is about Creator Dashboard setup, redirect URL rules, private mode limits, or app review.
references/oauth-registration.md - Open when implementing PKCE, the authorization URL, callback handling, or token storage.
references/oauth-development-guide.md - Open for exact OAuth endpoints, token lifetimes, token validation helpers, and discovery metadata.
references/oauth-reference.md - Open for localhost setup, environment-variable patterns, and how the sample app wires the flow together.
references/oauth-sample-app.md - Open when mapping app behavior to the minimum required scopes.
references/scopes-reference.md - Open when you need to reason about endpoint sensitivity before requesting powerful scopes.
references/risk-level-reference.md - Open when triaging OAuth and token-related failures against Open Cloud error patterns.
references/cloud-auth-related-error-guidance.md
Checklist
- The task actually requires delegated OAuth access, not API-key-based automation.
- The client is classified correctly as confidential or public.
- PKCE is included, or the design is rejected if a public client tries to skip it.
- Redirect URLs are exact matches and valid for the intended environment.
- Requested scopes are minimal and match the integration's real behavior.
- is included only when identity data or an ID token is needed.
openid - is generated, stored, and verified on callback.
state - The authorization code is exchanged promptly and only once.
- Access and refresh token storage stays off untrusted clients.
- Refresh token rotation is handled by replacing the stored refresh token after refresh.
- The app uses ,
userinfo, andintrospectfor their distinct purposes.token/resources - The guidance stays out of general Open Cloud request mechanics, gameplay scripting, and data architecture.
Common Mistakes
- Using API keys and OAuth interchangeably instead of choosing the auth model first.
- Shipping a confidential client secret in frontend or mobile code.
- Skipping PKCE, especially for public clients.
- Forgetting to verify on the callback.
state - Assuming a refresh token can be reused multiple times after a successful refresh.
- Forgetting that authorization codes expire quickly and are single-use.
- Requesting without
profile.openid - Requesting broad scopes during development instead of the minimum required set.
- Assuming token introspection proves resource ownership or consented resource coverage.
- Adding or changing scopes without reauthorizing users.
- Treating non-OAuth Open Cloud issues as part of this skill instead of handing them to .
roblox-cloud
Examples
Public web or mobile app
- Use authorization code flow with PKCE.
- Keep all secrets off the client.
- Verify , exchange the code on a trusted backend when possible, and store refresh tokens securely.
state
Confidential server app
- Register the app, store the secret once, and still use PKCE.
- Use the server to exchange codes, refresh tokens, and call Open Cloud with bearer tokens.
Local development
- Add as a redirect URL.
http://localhost:<port>/oauth/callback - Store client ID and secret in environment variables.
- Test the full login, callback, token exchange, refresh, and logout or revoke path before requesting more scopes or review.