Block-Auth

Block-Auth permite a tus usuarios iniciar sesión en tu app sin contraseñas, con una identidad descentralizada que controlan ellos. Tu backend recibe de Block-Auth un usuario verificado y mantiene su propia sesión, sus propios usuarios y sus propias reglas.

Cómo funciona

  1. El usuario inicia sesión en Block-Auth. Tu app abre el login de Block-Auth en auth.block-auth.io, en un popup o con una redirección. El usuario entra con su identidad de Block-Auth, desde la extensión del navegador o la app móvil, o con Google, Microsoft, MetaMask, Phantom o WalletConnect, y aprueba la sesión.
  2. Tu backend recibe el usuario. Block-Auth devuelve un código de un solo uso. Tu backend lo canjea con tu API secret en POST /api/auth/token y recibe la dirección y los roles del usuario. El navegador nunca decide quién es el usuario.
  3. Tu app mantiene su sesión. Tu backend crea su propia sesión, como con cualquier otro método de login, y puede vincular el usuario de Block-Auth con un usuario que ya tengas.

Cada sesión queda firmada en la blockchain de Block-Auth, y tus usuarios pueden ver y cerrar sus sesiones, dispositivos y apps vinculadas en Block-Auth Identity.

Explora la arquitectura

Elige tu stack para ver las piezas que usas en tu código y cómo se conectan con Block-Auth. Pasa el ratón por una pieza o un paso para seguirlo.

  • SDK de Block-Auth
  • Tu código
  • Lo aloja Block-Auth

Tu frontend

  • <BlockAuthProvider>SDK de Block-Auth. Config con tu apiKey pública.
  • <FlowBlockAuth />SDK de Block-Auth. Botón de login y, después, el menú de perfil.
  • <LinkBlockAuth />SDK de Block-Auth. Vincula al usuario de tu app que tiene sesión.
  • useBlockAuthUser()SDK de Block-Auth. Usuario y roles para tu UI, leídos del estado del SDK.

Tu backend

  • POST /codeTu código. Canjea el código y pone tu cookie httpOnly.
  • GET /me · POST /logoutTu código. Quién tiene sesión, comprobado al cargar y cada 60 s, y logout.
  • GET · POST /linkTu código. Envía tu id de usuario como linkExternalId.
  • WebhookTu código. Recibe signout y account.unlinked.

Block-Auth

  • DashboardLo aloja Block-Auth. Tu app, dominio, claves y roles.
  • auth.block-auth.ioLo aloja Block-Auth. Login alojado: identidad de Block-Auth (extensión o app móvil), Google, Microsoft, MetaMask, Phantom o WalletConnect.
  • BlockchainLo aloja Block-Auth. Cada sesión queda firmada on-chain.
  • Block-Auth APILo aloja Block-Auth. /api/auth/token, /signout y /link/revoke, con tu apiSecret.
  • IdentityLo aloja Block-Auth. Tus usuarios ven sus sesiones, dispositivos y apps vinculadas, y pueden cerrarlas o desvincularlas.

Widget en tu frontend y sesión en tu backend. Las rutas de tu backend cuelgan de /auth/blockauth, o de tu authEndpoint, y pueden usar el paquete de Block-Auth para Node.js, PHP, Python o .NET, o HTTP directo.

  1. 1Copias tu apiKey pública del Dashboard.
  2. 2Abre el login en un popup (PKCE).
  3. 3Devuelve un código de un solo uso.
  4. 4La sesión queda firmada on-chain.
  5. 5Envía el código a tu backend.
  6. 6Canjea código + apiSecret: recibe address y roles.
  7. 7Al cargar y cada 60 s (sessionCheckSeconds), pregunta a tu backend quién tiene sesión; el logout la cierra.
  8. 8Comparte el usuario y sus roles con el resto de tu UI.
  9. 9Opcional: abre el mismo popup de login para vincular a tu usuario existente.
  10. 10Consulta si ya está vinculado y envía el nuevo código.
  11. 11El usuario cierra una sesión o desvincula tu app en Identity.
  12. 12Webhook firmado si el usuario cierra sesión o desvincula.

Qué te da Block-Auth

  • Login sin contraseñas con cuentas sociales, wallets y la extensión de Block-Auth, en una página de login que aloja y mantiene Block-Auth.
  • Vinculación de cuentas entre una identidad de Block-Auth y los usuarios que ya tienes, sin compartir tu base de datos.
  • Roles que defines en el Dashboard y que llegan con cada login.
  • Webhooks firmados cuando un usuario cierra sesión (signout) o desvincula tu app (account.unlinked).
  • SDKs para React, Vue y Angular, para PHP, Python y .NET, y un plugin de WordPress.