Macaroons L402

Tokens de autenticacion almacenados localmente. Cada macaroon esta vinculado a un pago Lightning y un servicio especifico.

Un macaroon es un token criptografico firmado con HMAC-SHA256 que contiene: el payment_hash del invoice Lightning, el service_id del recurso protegido, y una fecha de expiracion. Para usarlo, el cliente presenta Authorization: L402 <macaroon>:<preimage>. El servidor verifica la firma HMAC, comprueba que SHA256(preimage) == payment_hash, y concede acceso.

Tokens almacenados

Almacen local de todos los tokens L402 que has adquirido al pagar por contenido protegido. Se guardan en el localStorage del navegador (solo existen en tu maquina, el servidor no los almacena).

Cada tarjeta de token muestra:

  • Servicio: La ruta protegida para la que se emitio el token (ej: /introduccion). Cada token solo da acceso a su ruta especifica.
  • Macaroon: Token HMAC-SHA256 codificado en base64. Contiene un JSON con version, payment_hash, service_id, expires_at y la signature calculada con la root_key secreta del servidor. Es infalsificable sin la root_key.
  • Preimage: Prueba criptografica de pago Lightning (32 bytes en hexadecimal). Cumple la relacion SHA256(preimage) == payment_hash. Solo el pagador la conoce; se revela al completar el pago a traves de la Lightning Network.
  • Adquirido: Fecha y hora en que se realizo el pago y se almaceno el token, con el tiempo transcurrido desde entonces.

Acciones por token:

  • Anatomia: Despliega la estructura interna del macaroon en el panel inferior, decodificando el base64 y mostrando cada campo.
  • Copiar header: Copia al portapapeles el header HTTP completo Authorization: L402 macaroon:preimage listo para usar en curl o cualquier cliente HTTP.
  • Probar: Envia una peticion GET a la ruta protegida con el token L402 para verificar si aun es valido (no expirado, no revocado, quota disponible).
  • Eliminar: Borra el token del almacen local. Esto no lo revoca en el servidor — si tienes copia, sigue funcionando hasta que expire.

Actualizar: Recarga la lista desde localStorage. Borrar todos: Elimina todos los tokens almacenados localmente de forma irreversible.

Tokens almacenados

Sin macaroons

Accede a un servicio protegido para obtener tu primer token L402.

Anatomia del Token L402

Visor que descompone un macaroon seleccionado en sus partes internas. Pulsa "Anatomia" en cualquier token almacenado para activarlo.

Campos que se muestran:

  • Esquema: L402 — identificador del protocolo (antes conocido como LSAT). Basado en el estandar HTTP 402 Payment Required, definido en bLIP-0026.
  • Macaroon (raw): El token completo codificado en base64. Es lo que viaja en el header HTTP. Tipicamente entre 100-200 caracteres.
  • Decodificado: Resultado de decodificar el base64. Muestra la estructura JSON interna con los campos: v (version), payment_hash (32 bytes hex que identifica el pago Lightning), service_id (ruta protegida), expires_at (ISO 8601), y signature (HMAC-SHA256 calculado con la root_key del servidor).
  • Preimage: 32 bytes hexadecimales (64 caracteres). Es la prueba de pago: el servidor verifica que SHA256(preimage) coincide con el payment_hash del macaroon. Sin el preimage correcto, el macaroon es inutil.
  • Header: El header HTTP Authorization completo tal como se envia en cada peticion. Formato: Authorization: L402 <macaroon>:<preimage>.

Seguridad: El macaroon esta firmado con HMAC-SHA256 usando una root_key secreta que solo conoce el servidor. Cualquier alteracion del contenido invalida la firma. A diferencia de JWT, los macaroons permiten delegacion: se pueden restringir con caveats adicionales sin contactar al servidor emisor.

Anatomia del Token L402

Selecciona un token para ver su estructura

Probar token manualmente

Herramienta de depuracion para probar tokens L402 arbitrarios contra rutas protegidas. Util para:

  • Verificar tokens obtenidos por otros medios (API, curl, otra aplicacion).
  • Diagnosticar errores de autenticacion: token expirado, preimage incorrecto, servicio no coincide, quota agotada.
  • Comprobar que un token copiado desde otra maquina sigue siendo valido.

Campos del formulario:

  • Ruta protegida: La URL relativa del recurso protegido (ej: /introduccion). Debe coincidir con el service_id del macaroon, o el servidor rechazara el token con error service_mismatch.
  • Macaroon (base64): El token completo codificado en base64. Se obtiene del header WWW-Authenticate en la respuesta 402, campo token="...". Debe ser un macaroon emitido por este servidor (firmado con su root_key).
  • Preimage (64 hex): La prueba de pago Lightning. Son 64 caracteres hexadecimales (32 bytes). Se obtiene al pagar la invoice Lightning asociada. Si introduces un preimage incorrecto, el servidor respondera con error invalid_preimage.

Respuestas posibles:

  • 200 OK: Token valido, se muestra el contenido HTML protegido.
  • 401: Token invalido — firma HMAC incorrecta, preimage no coincide, o token revocado.
  • 402: Token expirado o quota agotada — necesitas pagar de nuevo.
  • 404: La ruta no existe como servicio protegido.

Probar token manualmente