es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo volver al referente original después de múltiples redireccionamientos a varios dominios.

Tenemos una plataforma que permite a múltiples usuarios crear sus sitios web con un presupuesto bajo. Estamos creando una función en la cual pueden obtener las publicaciones más recientes de sus cuentas de redes sociales, lo cual requerirá un proceso de autorización.

El proceso de autorización devuelve tokens de validación que deben ser almacenados en la base de datos y luego comenzar a obtener las publicaciones. La aplicación de redes sociales requiere una URL de retorno estática para entregar los tokens. Dado que esta es una plataforma, cada usuario tendrá un dominio diferente, por lo que debemos proporcionar una URL desde nuestro dominio principal para capturar los tokens del usuario. Una vez que las publicaciones son obtenidas y almacenadas, finalmente necesitamos llevar al usuario a su dominio para que puedan verificar si la obtención de las publicaciones funcionó correctamente. Pero el problema es que hay 3 dominios en la imagen, por lo tanto, en la página final, no sabemos desde qué punto comenzó el ciclo.

Entonces, nos encontramos con el siguiente escenario.

Tengo un enlace A del Dominio 1.

Este redirige a un enlace B del Dominio 1.

Este redirige a una URL C de una API de terceros en el Dominio 2, que a su vez redirige a otra URL D de la misma API de terceros en el Dominio 2.

Luego, el usuario es redirigido a un enlace E del Dominio 3.

Ahora, quiero redirigir de regreso a A.

¿Cómo puedo lograr esto?

Lo que he intentado
Traté de guardar el enlace A en una sesión cuando estaba en el Dominio 1, pero dado que hay tres dominios en la imagen, no puedo obtener el valor de la sesión en el Dominio 3. Por lo tanto, no puedo redirigir de regreso al enlace A del Dominio 1.

¿Podría sugerirme cómo lograr esto?

Tags:  ,

Answer

  1. Avatar for davy.ai

    Una solución a este problema es utilizar parámetros de consulta para pasar la información necesaria entre dominios. Como mencionaste, los valores de la sesión no se comparten entre dominios,por lo que necesitamos encontrar una forma de pasar la información a través de las propias URLs.

    Así es como podría funcionar:

    1. En el Dominio 1, cuando el usuario hace clic en el botón de buscar publicación, genera un token único (por ejemplo, un UUID) y guárdalo en la base de datos junto con el nombre de dominio del usuario.
    2. Redirige al usuario a link B con el token pasado como parámetro de consulta. Por ejemplo: linkB.com?token=12345.

    3. En el controlador del Dominio 1 para link B, recupera el token del parámetro de consulta y guárdalo en la sesión del usuario.

    4. Utiliza cURL para realizar una solicitud a la API de terceros en el Dominio 2, pasando el token como parámetro de consulta. Por ejemplo: linkC.com?token=12345.

    5. La API de terceros validará el token y redirigirá al usuario a link D con el token aún en el parámetro de consulta.

    6. Utiliza cURL nuevamente para realizar una solicitud a link D, pasando el token como parámetro de consulta.

    7. En el controlador del Dominio 1 para link D, recupera el token del parámetro de consulta y úsalo para obtener las publicaciones de la API de terceros. Guárdalas en la base de datos asociada con el dominio del usuario.

    8. Finalmente, redirige al usuario a link E con el token aún en el parámetro de consulta. Por ejemplo: linkE.com?token=12345.

    9. En el controlador del Dominio 3 para link E, recupera el token del parámetro de consulta y úsalo para redirigir al usuario nuevamente a link A con el token aún en el parámetro de consulta. Por ejemplo: linkA.com?token=12345.

    10. En el controlador del Dominio 1 para link A, recupera el token del parámetro de consulta y úsalo para obtener las publicaciones de la base de datos asociada con el dominio del usuario. Muestralas al usuario en la página.

    De esta manera, el token se pasa a través de las URLs entre dominios, permitiendo que cada controlador lo recupere y lo utilice para obtener y almacenar la información necesaria.

Comments are closed.