本文へ移動
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 / 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 のスキルをすべて見る

このスキルの問題を報告する