Generador OAuth 2.0 PKCE
PKCE (Proof Key for Code Exchange, RFC 7636) es el flujo OAuth 2.0 moderno recomendado para TODOS los clientes públicos — SPAs, móviles y apps de escritorio que no pueden guardar un client_secret seguro. Esta herramienta genera un `code_verifier` criptográficamente aleatorio (43-128 caracteres del alfabeto URI no reservado), deriva el `code_challenge` (SHA-256 codificado en base64url para S256, o el verifier para `plain`) y construye la URL completa con `state` para protección CSRF. El `curl` adjunto muestra el intercambio de token con todos los parámetros listos — solo pega el `code` del callback.
Cómo usar
- Define la longitud del verifier (64 es buen default; mínimo 43, máximo 128).
- Elige S256 (siempre preferido) o plain (solo servidores legacy).
- Completa `client_id`, `redirect_uri`, `scope` y los endpoints OAuth.
- Manda al usuario a la URL de autorización. Cuando vuelva con `?code=...`, ejecuta el curl con ese código para obtener tokens.
Preguntas frecuentes
- S256 vs plain, ¿cuál usar?
- Siempre S256. Plain envía el verifier como challenge — sin protección si interceptan la solicitud. S256 envía solo SHA-256 del verifier, así el verifier nunca aparece en el paso 1. RFC 7636 indica que los clientes deben rechazar plain si S256 está disponible.
- ¿Por qué estos caracteres en el verifier?
- RFC 7636 especifica el alfabeto del verifier como `[A-Z][a-z][0-9]-._~` — caracteres URI no reservados de RFC 3986. Esto lo hace seguro en URLs, headers y bodies sin escapado.
- ¿Para qué `state`?
- Cadena aleatoria opaca que el cliente genera por solicitud y valida en el callback. Previene CSRF: si un atacante engaña al usuario para hacer click en una redirección maliciosa, el `state` no coincidirá con el guardado y la respuesta se rechaza. Úsala siempre.
- ¿Dónde corre?
- Íntegramente en tu navegador. El verifier viene de `crypto.getRandomValues()` y SHA-256 de `crypto.subtle.digest()` — ambas Web Crypto API. Nada se envía.
Herramientas relacionadas
Codificador / Decodificador de HTTP Basic Auth
Codifica `usuario:contraseña` en la cabecera `Authorization: Basic` Base64 — o pega una cabecera existente para ver quién está dentro.
Generador de registros DNS CAA
Genera registros DNS CAA (Certificate Authority Authorization) para que solo las CAs que tú autorizas puedan emitir certificados TLS para tu dominio. Produce registros en formato BIND y filas tag/valor para paneles de control, con lista de CAs comunes (Let's Encrypt, DigiCert, Google, Amazon…) en un clic.
Constructor de enlaces mailto:
Construye URLs mailto: con Para, Cc, Cco, asunto y cuerpo — codificadas con porcentaje según RFC 6068, listas para etiquetas <a>.
Expansor de Plantillas URI (RFC 6570)
Expande plantillas URI RFC 6570 con tus propias variables — admite los cuatro niveles: operadores de ruta, consulta, fragmento, etiqueta y estilo-ruta, con modificadores explode y prefijo, todo en tu navegador.
Referencia de Códigos de Estado HTTP
Lista buscable de todos los códigos HTTP (1xx-5xx) con resumen, RFC, cuándo usar y trampas frecuentes.
Generador de Códigos QR
Crea códigos QR personalizados desde cualquier texto o URL y descárgalos.
Generador aleatorio de prompts creativos
Genera prompts creativos frescos para dibujo, escritura, fotografía, proyectos de código paralelos o worldbuilding ficcional. Pulsa rerolar para una nueva tanda y rompe el bloqueo creativo.