Skip to main content

Resumen

El Hub de la app del wallet de Ebioro lista tiendas asociadas. Cuando un usuario abre tu tienda desde el Hub, Ebioro puede entregarle un token firmado que identifica al usuario, de modo que llega ya autenticado — sin registro ni inicio de sesión aparte. La tienda se abre dentro de la app en un webview. Es un canal de distribución para comercios: aparece en el Hub, y cada usuario del wallet es un cliente potencial a un toque. Hay dos formas de listar una tienda:

Sin autenticación

Registra una sola URL de webview y Ebioro la abre directamente desde el Hub. Ideal para un catálogo público sin cuentas de usuario.

Con inicio de sesión

Ebioro entrega a tu endpoint de autenticación un token firmado, de modo que el usuario llega a una sesión que tú creaste — ya autenticado. Ideal cuando los usuarios tienen cuentas en tu tienda.
Las tiendas las lista Ebioro, no es autoservicio. Para aparecer en el Hub — y para registrar tu endpoint de autenticación, ícono y los headers personalizados — contáctanos en [email protected].

Cómo funciona el inicio de sesión autenticado

El usuario abre tu tienda

El usuario toca tu tienda en el Hub del wallet.

Ebioro firma un token

Un JWT de corta duración con el nombre, apellido, correo y teléfono del usuario.

Ebioro llama a tu endpoint

Un POST a tu endpoint de autenticación registrado con { "token": "<jwt>" }.

Verificas el token

Comprueba la firma y la expiración antes de confiar en cualquier campo.

Inicias una sesión

Busca o crea al usuario (por correo o teléfono) y abre una sesión.

Devuelves un enlace

Responde con { "url": "<enlace autenticado>" }.

El usuario queda autenticado

Ebioro abre esa URL en el webview dentro de la app — el usuario llega ya autenticado.

Tu endpoint de autenticación

Registra un endpoint HTTPS que reciba el token y devuelva una URL de sesión. Solicitud — Ebioro llama a tu endpoint:
Los headers personalizados que acuerden al momento del listado (por ejemplo un x-api-key compartido) se envían con esta solicitud, para que tu endpoint pueda confirmar que la llamada realmente vino de Ebioro. Respuesta — devuelve la URL que abre una sesión autenticada:
Ebioro abre ese url en el webview. Devuelve HTTP 200 con un campo url; cualquier otra cosa se considera un fallo.

El token

Payload:

Obtener la clave pública

Ebioro firma con su clave de firma Stellar. La clave pública correspondiente se publica en el campo SIGNING_KEY del Stellar TOML: La clave está en formato Stellar G.... Para verificar un JWT Ed25519 estándar, conviértela a un objeto de clave pública como se muestra abajo.

Verificar el token (Node.js)

La llamada a jwtVerify comprueba la firma, la expiración (exp) y la audiencia (aud). Con el payload verificado, busca al usuario por correo o teléfono, créalo si no existe, inicia una sesión y devuelve su URL.

Verifica la audiencia

Cada token que Ebioro firma está acotado a una sola tienda: su claim aud se fija en el host del webview de tu tienda (el hostname de la URL de webview que registraste, p. ej. www.example.store). Pasa ese valor como la opción audience a jwtVerify, como se muestra arriba. Verificar aud garantiza que un token emitido para otra tienda no pueda reutilizarse contra tu endpoint. Es opcional pero muy recomendable — sin ello, se aceptaría cualquier token válido de Ebioro. Si no estás seguro del host exacto registrado para tu tienda, pregúntanos al momento de la incorporación.
El ejemplo usa por defecto la clave de sandbox. Antes de pasar a producción, define EBIORO_DOMAIN como api.ebioro.com — verificar tokens de producción con la clave de sandbox hará fallar todos los inicios de sesión.
Verifica siempre la firma antes de confiar en cualquier campo del token, y confirma los headers personalizados acordados con Ebioro. Nunca autentiques a un usuario con un token sin verificar.

Tiendas sin autenticación

Si tu tienda no tiene cuentas de usuario, puedes omitir todo lo anterior: registra una sola URL de webview y Ebioro la abre directamente desde el Hub. Sin token, sin endpoint. Contáctanos para configurarlo.