跳到正文
cccskills
免费在 GitHub 公开

oauth-setup

OAuth 2.0 + OIDC para Educabot (Go/TS/React/RN). Authorization Code + PKCE, id_token validation, multi-provider (Google, Microsoft, Apple, GitHub).

中文简介正在准备中。当前显示原文说明。

SebastianLuser/claude-code-arcane星标 3(GitHub 3 + cccskills 0)
集成工具GitHub

实测评分 未实测

查看安装方法

包含的文件(1)

  • SKILL.md3.8 KB

SKILL.md(原文)

安装前可以查看交给 AI 代理的指令内容。

oauth-setup — OAuth 2.0 + OIDC

Flows

FlowUsoEstado
Authorization Code + PKCESPA, mobile, web serverDefault
Authorization Code (client_secret)Backend confidencialOK
Client CredentialsServer-to-server M2MOK
Implicit / Password Grant—Deprecado

Regla: siempre Authorization Code + PKCE, incluso con client_secret (defense in depth).

Providers

ProviderScopes mínimosNotas
Google (default)openid email profilehd claim para dominio escolar. +classroom.rosters.readonly si Classroom
Microsoftopenid email profile User.ReadTenant-specific o common
Applename emailRequerido en iOS si hay otros social logins. ES256, email puede ser relay
GitHubread:user user:emailNo OIDC — parsear /user. Solo staff interno

Librerías

  • Go: golang.org/x/oauth2 + github.com/coreos/go-oidc/v3
  • Node/TS: openid-client (evitar passport-*)
  • React+Vite: @react-oauth/google (solo Google) o flow PKCE manual (multi-provider)
  • Expo: expo-auth-session. Bare RN: react-native-app-auth

PKCE

code_verifier = random 43-128 chars → code_challenge = base64url(sha256(verifier)). Cliente genera verifier, envía challenge en /authorize, envía verifier en /token.

Seguridad Obligatoria

ParámetroPropósitoValidación
stateCSRFRandom opaco, guardar server-side, comparar en callback
nonceReplay protectionIncluir en request, verificar en id_token
code_challenge S256PKCEVer arriba
redirect_uriWhitelist exactoHTTPS siempre (excepto localhost dev)

Validación id_token

Verificar: signature (JWKS), iss exacto, aud = client_id, exp no vencido, nonce match, hd si Workspace.

Sesión Post-OAuth

id_token NO es session token. Crear sesión propia:

  • Web: Cookie httpOnly+Secure+SameSite=Lax, sid → Redis/DB lookup
  • Mobile/SPA: JWT 15min (en memoria) + refresh token httpOnly/secure storage

Nunca localStorage/sessionStorage para tokens.

Account Linking

Verificar email_verified=true → buscar por email → pedir confirmación al usuario → guardar en user_identities(user_id, provider, provider_sub). No auto-linkear sin confirmación.

Multi-tenant (Workspace escolar)

Validar claim hd en id_token server-side. Mapear via schools(domain, tenant_id).

Menores (COPPA/LGPD)

No registro individual de menores. Usar Google Classroom rostering (cuenta Workspace gestionada por escuela). No pedir datos extra sin consentimiento parental.

Anti-patterns

  • Implicit/password grant, SPA sin PKCE, sin state, id_token como session
  • localStorage para tokens, redirect_uri con wildcard, client_secret en frontend
  • Aceptar id_token sin verificar, confiar email sin email_verified, HTTP en redirect_uri prod

Checklist

  • Authorization Code + PKCE (S256)
  • state + nonce generados y validados
  • id_token verificado: signature, iss, aud, exp, nonce
  • email_verified=true antes de trust
  • redirect_uri exacto, HTTPS en prod
  • client_secret solo en backend
  • Sesión propia post-login (httpOnly cookie o JWT+refresh seguro)
  • Tokens NO en localStorage
  • Logout invalida server-side
  • Account linking con confirmación
  • hd validado si Workspace escolar
  • Menores via rostering, no registro individual
  • Logs NO imprimen tokens

评价

还没有评价。欢迎分享你的使用感受。

评论

无需登录即可发表。欢迎分享使用感受、提问,或说明在哪些环境下无法运行。

还没有评论。来写第一条吧。

提交后会立即公开。请勿填写邮箱、电话等个人信息。URL 最多 2 个。

0 / 1000 字

此表单受 reCAPTCHA 保护,适用 Google 的隐私权政策和服务条款。

同一仓库的技能

Plan, design, and implement A/B tests and experiments with statistical rigor. Covers hypothesis frameworks, sample sizing, metrics, and result analysis.

中文简介正在准备中。当前显示原文说明。

SebastianLuser/claude-code-arcane32026年10月27日 更新

Web/mobile accessibility decision guide: WCAG 2.2 AA, ARIA, keyboard nav, focus management, contrast, testing. Use for: a11y, accessibility, wcag, aria, screen reader, keyboard, contrast.

中文简介正在准备中。当前显示原文说明。

SebastianLuser/claude-code-arcane32026年10月27日 更新

Generate, iterate, and scale ad creative for paid advertising across Google, Meta, LinkedIn, and X. Covers platform specs, creative frameworks, and quality validation.

中文简介正在准备中。当前显示原文说明。

SebastianLuser/claude-code-arcane32026年10月27日 更新

Musica interactiva para juegos: layering vertical, re-secuenciacion horizontal, stingers, reglas de transicion con sync points, y mapeo de estados de gameplay a musica. Usar para: musica adaptativa, sistema de musica dinamica, transiciones musicales, combat music.

中文简介正在准备中。当前显示原文说明。

SebastianLuser/claude-code-arcane32026年10月27日 更新

Design multi-agent systems, create agent architectures, define communication patterns, and build autonomous agent workflows with structured evaluation frameworks.

中文简介正在准备中。当前显示原文说明。

SebastianLuser/claude-code-arcane32026年10月27日 更新

Inter-agent communication protocol for C-suite agent teams. Defines invocation syntax, loop prevention, isolation rules, response formats, and quality loops.

中文简介正在准备中。当前显示原文说明。

SebastianLuser/claude-code-arcane32026年10月27日 更新

查看 SebastianLuser 的全部技能

报告此技能的问题