con un clic
oauth-flow-implementer
Use when implementing OAuth provider flows for production auth
Instalar con Codex o Claude Copia este prompt, pégalo en Codex, Claude u otro asistente, y deja que revise la página de la skill y la instale por ti.
Menú
Use when implementing OAuth provider flows for production auth
Instalar con Codex o Claude Copia este prompt, pégalo en Codex, Claude u otro asistente, y deja que revise la página de la skill y la instale por ti.
Basado en la clasificación ocupacional SOC
Record browser-based feature demos as GIFs via Playwright and optionally document them in docs/features/index.md. Trigger with "Demo <feature>" or "Demo and Document <feature>".
Use when creating service modules in apps/api/skillhub/services/
Use when writing API tests in apps/api/tests/
Use when implementing division-based access control on any endpoint
Use when adding services to docker-compose.yml or creating Dockerfiles
Use when implementing error handling across the API, frontend, or MCP server
| name | oauth-flow-implementer |
| description | Use when implementing OAuth provider flows for production auth |
GET /auth/oauth/{provider} → returns redirect URL + stateGET /auth/oauth/{provider}/callback?code=...&state=...OAUTH_MICROSOFT_CLIENT_ID=...
OAUTH_MICROSOFT_CLIENT_SECRET=...
OAUTH_MICROSOFT_TENANT_ID=...
OAUTH_GOOGLE_CLIENT_ID=...
OAUTH_GITHUB_CLIENT_ID=...
Extract from provider's userinfo:
email → users.emailname → users.namedivision → from org claim or group membershiprole → from role claimpayload = {
"user_id": str(user.id), "email": user.email,
"name": user.name, "division": user.division,
"role": user.role, "is_platform_team": user.is_platform_team,
"exp": datetime.utcnow() + timedelta(hours=8)
}
token = jwt.encode(payload, settings.JWT_SECRET, algorithm="HS256")
apps/api/skillhub/routers/auth.pyapps/api/skillhub/config.py