Valida una identidad en modo embebido
Valida una identidad en modo embebido
Esta guía complementa la integración principal de Disclosure y se enfoca en los detalles específicos del modo embebido con el SDK web @soyio/soyio-widget.
Actualmente, el modo embebido soporta solo Disclosure con disclosure_request_id ya creado.
No se soporta la creación del disclosure request desde frontend en este modo.
whitelisted_domains)Para usar Disclosure embebido debes registrar los dominios host en whitelisted_domains de tu compañía.
Si el dominio donde montas el flujo embebido no está permitido, el navegador bloqueará el render por política CSP (frame-ancestors).
En modo embebido, Soyio arma frame-ancestors con:
refererde la requestwhitelisted_domainsde la configuración
Qué cubre esta guía
- Configuración de CSP para modo embebido.
- Implementación con
DisclosureRequestBox. - Consideraciones de passkeys y troubleshooting.
Requisitos
- Tener un
disclosure_request_idya creado (requisito obligatorio para embedded). - Configurar
whitelisted_domainscon los orígenes donde se montará el flujo embebido. - Instalar el SDK web:
npm install @soyio/soyio-widget
Implementación (SDK Web)
<div id="embedded-disclosure"></div>
<script type="module">
import { DisclosureRequestBox } from "@soyio/soyio-widget";
const widget = new DisclosureRequestBox({
disclosureRequestId: "<disclosure_request_id>",
customColor: "#0F172A", // opcional
onReady: () => {
console.log("Embedded disclosure ready");
},
onEvent: (event) => {
console.log("Embedded disclosure event:", event);
},
height: "720px", // opcional
minHeight: "640px", // opcional
isSandbox: true, // opcional
});
widget.mount("#embedded-disclosure");
</script>
Passkeys en modo embebido
La creación y autenticación con passkeys no siempre está soportada dentro de contextos embebidos. En esos casos, el SDK abre un popup temporal para completar passkey y luego retorna automáticamente al flujo embebido.
Troubleshooting CSP
Si ves la pantalla en blanco o errores en consola tipo Refused to frame ... because an ancestor violates Content Security Policy, revisa:
- Que el origen host esté en
whitelisted_domains. - Que el dominio de staging/producción sea exactamente el esperado.