Alguien ha trabajado con tenancy y laravel 9?

  • Autor Autor Prop Jason
  • Fecha de inicio Fecha de inicio
Prop Jason

Prop Jason

Beta
Verificado por Whatsapp
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Estoy realizando un proyecto donde tengo tenancy con laravel 9, tengo diferentes BBDD para diferentes países pero un único código, esto me permite poder acceder a diferentes informaciones dependiendo del dominio en el que entre, hasta aquí bien. Lo complejo viene cuando mi cliente me ha pedido que quiere que cualquier usuario pueda entrar en cualquier dominio, es decir si yo estoy registrado en la pagina de España que con esa misma cuenta pueda acceder a la pagina de estados unido o México y aquí es donde entra en tenancy y la sincronizacion de las BBDD inquilinas con la BBDD global, si alguien ha tocado estas tecnologías le estaría eternamente agradecido que me heche un cable.

Muchas gracias
 
Debes implementar una base de datos central para manejar la autenticación del usuario a nivel global. Para eso, tendrás que configurar correctamente el middleware para que use la base de datos global al autenticar al usuario y luego cambie a la base de datos correcta según el dominio. Y claro está, tendrías que sincronizar los datos entre estas bases de datos según tus necesidades. Es un poco complejo y requiere un buen entendimiento de cómo funciona tenancy junto con Laravel, pero es completamente posible. ¡Buena suerte!
 
OK, edito. Lei que son varios dominios. Tienes que ver la manera de compartir sesión/cookies en todos los dominios.

Supongo que tu problema comienza al momento de iniciar sesión. Me refiero que si inicia sesión en la web de ES cuando pase a la verson UK ya tenga iniciada la sesión no?
 
¿Cómo vas a compartir las sesiones? Usando JWT?
 
Yo lo hice teniendo una instancia como la "padre" de todas, donde estan las cuentas de usuarios a autenticar ahi implementar una api json para validar tanto el token como el usuario/clave y luego sobrecargar los metodos en las instancias hijas para que en lugar de ir a la base vayan a la API.
 
OK, edito. Lei que son varios dominios. Tienes que ver la manera de compartir sesión/cookies en todos los dominios.

Supongo que tu problema comienza al momento de iniciar sesión. Me refiero que si inicia sesión en la web de ES cuando pase a la verson UK ya tenga iniciada la sesión no?
Ese seria un ejemplo si, pero tambien poder iniciar sesión directamente en UK con mi cuenta de ES , básicamente ahora tengo la base de datos padre que tiene un id_global que se comparten con las base de datos inquilinas, el proceso es bastante simple, o eso creo yo , necesito que el proceso de autenticación se haga con la base de datos padre y no con las inquilinas de esta manera el inicio de sesión me permitirá acceder a diferentes dominios con un usuario.
 
Yo lo hice teniendo una instancia como la "padre" de todas, donde estan las cuentas de usuarios a autenticar ahi implementar una api json para validar tanto el token como el usuario/clave y luego sobrecargar los metodos en las instancias hijas para que en lugar de ir a la base vayan a la API.
ya pero como realizas la conexión únicamente con la base de datos padre, tengo que decir que este proyecto yo no lo he hecho es un trabajo que me han mandado y la estructura ya lleva años hecha y es un kaos en todos sus apartados....
 
Ese seria un ejemplo si, pero tambien poder iniciar sesión directamente en UK con mi cuenta de ES , básicamente ahora tengo la base de datos padre que tiene un id_global que se comparten con las base de datos inquilinas, el proceso es bastante simple, o eso creo yo , necesito que el proceso de autenticación se haga con la base de datos padre y no con las inquilinas de esta manera el inicio de sesión me permitirá acceder a diferentes dominios con un usuario.
entonces es mas simple. Si tienes acceso a la "BD PADRE" donde esta la tabla de usuarios solo usa el Auth::login($userData) verificas si los datos son correctos, creas sesión y redireccionas. No es necesario usar oauth, JWT.


o pregúntale a chatGpt, y te dará el código necesario para que termines esto.
 
ya pero como realizas la conexión únicamente con la base de datos padre, tengo que decir que este proyecto yo no lo he hecho es un trabajo que me han mandado y la estructura ya lleva años hecha y es un kaos en todos sus apartados....

En el Laravel padre expones una API Json, para mi es lo mas sencillo y seguro.
 
entonces es mas simple. Si tienes acceso a la "BD PADRE" donde esta la tabla de usuarios solo usa el Auth::login($userData) verificas si los datos son correctos, creas sesión y redireccionas. No es necesario usar oauth, JWT.


o pregúntale a chatGpt, y te dará el código necesario para que termines esto.
Muchas gracias por la ayuda 😉
 
Atrás
Arriba