Extras y producción

Webhooks, vinculación de cuentas y las comprobaciones antes de salir a producción.

Si tu app ya tiene sus propios usuarios, pueden vincular su identidad de Block-Auth a su cuenta. A partir de ahí, iniciar sesión con Block-Auth devuelve su id en tu app como externalId, para que entren como tu usuario.

  1. Desde una página donde tu usuario tenga sesión con tu propio login (y reciente, por ejemplo de los últimos 10 minutos), envíalo a /blockauth/login y guarda en la sesión que es una vinculación.
  2. En el callback, si es una vinculación, pasa tu id de usuario como linkExternalId al canjear el código y mantén la sesión actual del usuario:
const user = await blockauth.exchangeCode(code, CALLBACK_URL, undefined, String(req.session.appUser.id))

Si esa identidad o ese usuario ya están vinculados, la llamada falla con Account already linked o External id already linked. Para quitar un vínculo desde tu lado, llama a revokeLink(externalId).

Pruébalo y pasa a producción

Abre /blockauth/login, inicia sesión y comprueba que vuelves con la sesión iniciada y que GET /api/me devuelve tu usuario.

Antes de salir a producción:

  • Tu app de producción tiene su propio dominio validado y sus claves, y la web usa https.
  • El apiSecret solo está en el entorno de tu servidor.
  • El callback siempre comprueba el state, y tu app solo crea sesiones a partir de la dirección que devuelve /api/auth/token.
  • La cookie de sesión es HttpOnly, Secure y SameSite=Lax.