Install
$ agentstack add skill-luumenlabs-luau-skills-roblox-oauth ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
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
openidwhen the app needs an ID token, and addprofileonly when it truly needs profile claims. - 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
stateper authorization attempt. - Generate a fresh
code_verifierandcode_challengeper authorization attempt. - Use
noncewhen OIDC identity binding is relevant.
- Build the authorization request correctly:
- Send users to
https://apis.roblox.com/oauth/v1/authorize. - Include
client_id,redirect_uri,scope, andresponse_type=code. - Include
code_challengeandcode_challenge_method=S256for PKCE. - Do not expose a confidential client secret in browser or mobile code.
- Handle the callback defensively:
- Verify the returned
statebefore using thecode. - Handle both success (
code) and failure (error,error_description) query parameters. - Treat the authorization code as short-lived and single-use.
- 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
code_verifieror confidential-client credentials. - Store refresh tokens only on trusted server-side systems.
- 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
POST /oauth/v1/token/revokewhen disconnecting an app.
- Validate what the token can actually do:
- Use
GET /oauth/v1/userinfofor identity claims. - Use
POST /oauth/v1/token/resourceswhen the app must confirm resource-level access granted by the user. - Use
POST /oauth/v1/token/introspectonly for token activity and claims; it is not a substitute for resource authorization checks.
- 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
references/oauth-overview.mdfirst for roles, grant type choice, and OIDC basics. - Open
references/oauth-registration.mdwhen the task is about Creator Dashboard setup, redirect URL rules, private mode limits, or app review. - Open
references/oauth-development-guide.mdwhen implementing PKCE, the authorization URL, callback handling, or token storage. - Open
references/oauth-reference.mdfor exact OAuth endpoints, token lifetimes, token validation helpers, and discovery metadata. - Open
references/oauth-sample-app.mdfor localhost setup, environment-variable patterns, and how the sample app wires the flow together. - Open
references/scopes-reference.mdwhen mapping app behavior to the minimum required scopes. - Open
references/risk-level-reference.mdwhen you need to reason about endpoint sensitivity before requesting powerful scopes. - Open
references/cloud-auth-related-error-guidance.mdwhen triaging OAuth and token-related failures against Open Cloud error patterns.
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.
openidis included only when identity data or an ID token is needed.stateis generated, stored, and verified on callback.- 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,introspect, andtoken/resourcesfor their distinct purposes. - 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
stateon the callback. - Assuming a refresh token can be reused multiple times after a successful refresh.
- Forgetting that authorization codes expire quickly and are single-use.
- Requesting
profilewithoutopenid. - 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
state, exchange the code on a trusted backend when possible, and store refresh tokens securely.
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
http://localhost:/oauth/callbackas a redirect URL. - 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.
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: luumenlabs
- Source: luumenlabs/luau-skills
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.