본문으로 건너뛰기
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(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

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 / 1,000자

이 양식은 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의 스킬 모두 보기

이 스킬의 문제 신고