Relacionar tabelas em banco de dados diferentes
Olá.
Tenho uma aplicação multi tenancy com multi da base. Essa aplicação mantém os usuários no banco de dados central e ao logar, o sistema identifica com o companhia que o usuário está vinculado e então se conecta no banco de dados da companhia respectiva.
O problema é que para poder fazer níveis de permissões, preciso da tabela dos usuários que está no banco de dados central. Como faço para fazer esse relacionamento entre a tabela de permissões do tenant no banco de dados dele com a tabela de usuário no banco de dados central?
Olá, Henrique!
Tudo bem?
Se você tiver muitos clientes e sua tabela de usuário crescer muito, pode ser um problema (dependo do tipo de banco de dados), digo, porque está centralizado registros de tenants na base principal. Mas claro, isso vai de cada caso.
Como está o controle das permissions e roles do sistema? O tenant (cliente) vai poder cadastrar ou apenas usar as configurações pré-definidas?
Porque se ele for usar as configurações pré-definidas as permissions e etc devem estar na base principal também, e quando o usuário autenticar você armazena essas permissions em uma sessão (usando a key da sessão sendo algo único do tenant)
Pegou a ideia amigo?
Então vou fazer a separação total como no curso de multi tenant. Vou fazer a identificação da company pelo prefixo da rota. O problema maior que estou enfrentando é modificar as rotas de login, logout e registre padrão do fortify jetstream
Se não quiser usar as rotas defaults auth/register do Laravel, você vai precisar personalizar mesmo, criar as rotas e implementar a autenticação na mão: https://laravel.com/docs/8.x/authentication#authenticating-users
Precisa estar logado para conseguir responder a este ticket!
Clique Aqui Para Entrar!