PHP, Python, .NET, Node.js

Sigue esta guía si tus páginas se renderizan en el servidor, en PHP, Python, .NET o Node.js. Al terminar, tus usuarios inician sesión con Block-Auth y tu backend tiene una sesión verificada para ellos.

Qué vas a montar

Todo pasa en tu backend. No instalas nada de Block-Auth en el navegador: tus páginas solo necesitan un enlace normal para iniciar sesión y un formulario para cerrarla.

Tu backend envía al usuario al login de Block-Auth y lo recibe de vuelta en un callback con un código de un solo uso. Canjea el código con tu API secret, obtiene el usuario de Block-Auth y crea su propia sesión.

  1. 1Tus páginas → Tu backendGET /blockauth/login
  2. 2Tu backend → Block-AuthPOST /api/auth/authorize
  3. 3Tu backend → Tus páginasRedirige al login
  4. 4Tus páginas → Block-AuthEl usuario inicia sesión
  5. 5Block-Auth → Tus páginasVuelve con ?code&state
  6. 6Tus páginas → Tu backendGET /blockauth/callback
  7. 7Tu backend → Block-AuthPOST /api/auth/token
  8. 8Block-Auth → Tu backend{ address, roles }
  9. 9Tu backend → Tus páginasCookie de sesión y redirección

Prepara tu app

  1. En el Dashboard, crea tu aplicación y valida su dominio siguiendo la guía rápida de integración. El dominio es el host que ven tus usuarios (por ejemplo your-app.com). Para desarrollo, usa otra app con un dominio como dev.your-app.com (una app por entorno).
  2. Copia la apiKey y el apiSecret desde Aplicaciones » Ver claves.
  3. Ponlas en el entorno de tu servidor:

.env (backend)

APP_URL=https://your-app.com
BLOCKAUTH_API_KEY=your_api_key
BLOCKAUTH_API_SECRET=your_api_secret
SESSION_SECRET=a_long_random_string

Instala el cliente

Instala el cliente de Block-Auth para tu lenguaje. Te da AuthCodeClient, igual en todos los lenguajes.

npm install @block-auth.io/node express express-session

Tu propia implementación (sin SDK)

Los paquetes de backend son opcionales: solo te ahorran código. Cualquier servidor, en cualquier lenguaje, puede hacer lo mismo con HTTP normal. Envía el hash SHA-256 (hex) de tu apiSecret, nunca el secreto en sí.

Tu ruta de login pide un enlace y tu callback canjea el código:

curl -X POST https://wss.block-auth.io/api/auth/authorize \
  -H 'Content-Type: application/json' \
  -d '{
    "apiKey": "your_api_key",
    "apiSecret": "sha256_hex_of_your_api_secret",
    "redirectUri": "https://your-app.com/blockauth/callback",
    "state": "random_value_kept_in_the_session"
  }'

Todas las respuestas son { "success": true, "message": … }; en /api/auth/token, message contiene address, did y roles. Para verificar un webhook, calcula v1= + HMAC-SHA256 de timestamp.body (la cabecera X-BlockAuth-Timestamp, un punto y el cuerpo sin procesar), con el hash SHA-256 de tu apiSecret como clave, y compáralo con X-BlockAuth-Signature. Todos los parámetros y errores están en Login de usuarios.