Cómo usar
- Pulsa Generar para un code_verifier nuevo o pega el tuyo.
- El code_challenge se calcula como BASE64URL(SHA-256(code_verifier)).
- Envía code_challenge y code_challenge_method=S256 en la solicitud de autorización.
- Envía el code_verifier en la solicitud de token.
PKCE (Proof Key for Code Exchange, RFC 7636) protege el flujo de código de autorización de OAuth 2.0. Se creó para clientes públicos, como apps móviles, apps de escritorio y aplicaciones de una sola página, que no pueden guardar un secreto de cliente. Antes de redirigir al usuario, el cliente crea un secreto de un solo uso, el code_verifier, y envía solo su hash, el code_challenge. Al canjear el código por tokens envía el verifier original y el servidor comprueba que coincidan, así que quien intercepte solo el código no puede usarlo.
Este generador toma 32 bytes aleatorios de crypto.getRandomValues del navegador y los codifica en base64url sin relleno, lo que da un verifier de 43 caracteres. El code_challenge es el SHA-256 del verifier, también en base64url sin relleno, y siempre mide 43 caracteres. Solo se ofrece el método S256: RFC 7636 define también plain, pero exige S256 cuando el cliente puede calcular SHA-256. Sirve para depurar una integración de inicio de sesión, comparar la salida de tu biblioteca o preparar peticiones de prueba a mano.
Un verifier pegado se procesa tal cual, sin validar su formato: comprueba que tenga entre 43 y 128 caracteres de A–Z, a–z, 0–9, «-», «.», «_» y «~». Genera un verifier nuevo para cada solicitud de autorización. Ambos valores se calculan en esta página con la Web Crypto API y no se envían a ningún sitio.