Integración vía Oauth: backend
Acciones a realizar por el equipo de backend
Esta guía está diseñada para ayudar al equipo de backend a integrar el proceso de autenticación OAuth. A lo largo de este documento, se proporcionan pasos detallados y ejemplos de código para facilitar la implementación.
Introducción
La integración mediante OAuth permite a los usuarios autenticarse de manera segura con Wealth Reader. Este proceso garantiza que las solicitudes provienen de un origen confiable y protege la información del usuario durante la autenticación.
Acciones a realizar por el equipo de backend
Esta guía está diseñada para ayudar al equipo de backend a integrar el proceso de autenticación OAuth utilizando Wealth Reader. Las siguientes acciones son necesarias:
Autorizar el dominio desde donde se iniciarán las solicitudes OAuth.
Generar los valores
nonce
,state
, ycode_verifier
en formato hexadecimal.Construir la query con los parámetros correctos y redirigir al usuario para la autenticación.
Esperar la respuesta en la URL de callback con los parámetros
nonce
ycode
.Enviar una solicitud
POST
al servidor de tokens para completar el desafío OAuth y obtener el token de acceso.
1. Autorizar el Dominio indicando que el tipo de integración será oauth
El primer paso para comenzar con la integración del widget es autorizar el dominio donde se integrará. Esto garantiza que las solicitudes provienen de un origen seguro.
Puedes autorizar tu dominio mediante la API utilizando una solicitud POST
a la siguiente URL:
A continuación, se muestra un ejemplo de cómo realizar esta solicitud usando curl
:
2. Generar valores criptográficos para el challenge y wr_conf
wr_conf
Para iniciar el desafío OAuth, primero debes generar un challenge_code
, que será enviado como parte de la query. Este código, junto con otros parámetros, se genera en formato hexadecimal.
Valores necesarios:
redirect_uri: La página a la que se redirige al cliente tras completar el flujo, codificada con url_encode.
nonce: Cadena aleatoria de 41 caracteres convertida a formato hexadecimal (41x2 caracteres).
state: Cadena aleatoria de 41 caracteres convertida a formato hexadecimal.
code_verifier: Cadena aleatoria de 41 caracteres convertida a formato hexadecimal.
challenge_code: SHA_256 del valor hexadecimal de code_verifier.
wr_conf: Es la configuración del selector de bancos que verá el cliente. Los parámetros para configurar este json están detallados en Integración vía iframe (1 de 2).
El siguiente ejemplo muestra cómo crear una configuración JSON que posteriormente se debe convertir a formato hexadecimal para usar en la query:
Tras convertir este JSON a hexadecimal, ya tendrás generados todos los valores. Ver ejemplo en la siguiente sección.
Es fundamental guardar todos estos valores para poder recuperar la respuesta del banco al finalizar el flujo.
3. Construir la Query con los valores generados
Una vez que hayas generado los valores necesarios, puedes construir la query para que el cliente acceda a la página de autenticación. A continuación, un ejemplo de la query construida:
En este ejemplo, el cliente es redirigido a la página de autenticación donde el servidor de autenticación procesa la solicitud con los valores enviados. Una vez que el usuario autoriza la solicitud, el flujo continúa hacia el callback.
4. Recepción de la Solicitud GET en la URL de Callback
Después de que el usuario autoriza el acceso, el servidor de autenticación redirige al cliente hacia la URL de callback especificada (por ejemplo, https://example.com/oauth/success.php
).
Esta solicitud GET tendrá incorporados los valores de los parámetros nonce
y code
, que son necesarios para completar el desafío.
5. Completar el Desafío OAuth
Una vez que hayas recibido los parámetros nonce
y code
en la URL de callback, es necesario completar el desafío realizando una solicitud POST al siguiente endpoint para obtener la respuesta del banco:
Esta solicitud debe incluir los siguientes parámetros:
grant_type: Debe ser
authorization_code
.redirect_uri: La misma
redirect_uri
utilizada al construir la query.code: El código recibido en la solicitud GET.
code_verifier: El
code_verifier
que generaste previamente.
Ejemplo de solicitud POST:
Si los valores son correctos, el servidor devolverá la respuesta del banco junto con un token de acceso que puedes utilizar para autenticar futuras solicitudes en nombre del usuario. La estructura de la respuesta está documentada en Integración vía iframe (2 de 2): backend.
6. Código de Ejemplo
Puedes descargar el código de ejemplo en distintos lenguajes para generar los parámetros necesarios y completar el desafío OAuth. El archivo contiene ejemplos en Java
Última actualización