Un ejemplo de autenticación de dos factores (2FA) estilo Google Authenticator / Authy, pero hecho en PowerBuilder. La app genera el secreto compartido, lo pinta como código QR y vosotros lo escaneáis con el móvil; a partir de ahí la aplicación valida el código temporal (TOTP) que va cambiando cada pocos segundos. Muy útil si exponéis servicios vía API o manejáis datos sensibles y queréis un login seguro de verdad.
🚀 Qué podéis hacer con este ejemplo:
- Implementar 2FA en vuestra aplicación PowerBuilder.
- Integrar un login seguro tipo Google Authenticator / Authy.
- Generar códigos QR dentro de vuestra app.
¿Y de dónde sale el QR? Esa parte no la hace PowerBuilder solo: para dibujar el QR del secreto
nos apoyamos en .NET. Cargamos la librería .NET ZxingBarcode (que usa ZXing.Net) como
dotnetobject con el .NET DLL Importer de PB, lo que nos da el objeto proxy nvo_zxingnet.
Con nvo_zxingnet.BarcodeGenerate(...) (formato QR_CODE, código 12) generamos la imagen que
luego escanea el móvil. Como siempre, los métodos devuelven string, así que PowerBuilder no tiene
que capturar excepciones .NET.
La generación del QR la hace la librería .NET ZxingBarcode (clase ZxingNet):
- Se despliega ya compilada en la carpeta
DotNet\ZxingBarcode\de este propio ejemplo, para que clones, compiles y funcione sin más. - Se consume desde PowerBuilder como
dotnetobject(el proxynvo_zxingnet). - El código fuente vive en
Blog\Net10\ZxingBarcode(antes estaba enNet8) y se recompila/despliega con el scriptdesplegar_dotnet.bat(hacedotnet publishy espeja las DLLs a la carpetaDotNetde cada ejemplo). - Repo del proyecto .NET (Visual Studio 2022): https://github.com/rasanfe/ZxingBarcode
🔤 Cambio de nombre (.NET 10): la clase .NET pasó de
ZxingNet8aZxingNet, y el objeto PowerBuilder denvo_zxingnet8anvo_zxingnet(el "8" sugería .NET 8 y confundía). Recuerda recompilar y volver a desplegar la DLL deZxingBarcode.
- PowerBuilder 2025 para abrir y compilar la solución.
- .NET 10 Runtime instalado en la máquina → https://dotnet.microsoft.com/en-us/download/dotnet/10.0
- La carpeta
DotNet\ZxingBarcode\con las DLLs desplegadas (ya viene en el repo). - La app Google Authenticator en vuestro teléfono para escanear el QR y probar el flujo: https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2&hl=es
- Clona el repo y abre
twofactorauth.pbslncon PowerBuilder 2025. - Compila (Full Build) y ejecuta.
- Genera el secreto, deja que la app pinte el QR y escanéalo con Google Authenticator.
- Introduce el código temporal que muestra el móvil y comprueba que la app lo valida.
El código de este ejemplo es una adaptación del Two Factor Authentication de Bruce Armstrong, publicado en Appeon Community: https://community.appeon.com/codeexchange/powerbuilder/240-two-factor-authentication
https://github.com/rasanfe/TwoFactorAuthDemo
¡Nos vemos en el próximo artículo! Y recuerda: en PowerBuilder, los límites solo están en nuestra imaginación. 🚀
📨 Blog: https://rsrsystem.blogspot.com/