[PROMOÇÃO] Assine com + 30% de desconto ANUAL MENSAL (últimas horas)
Davson Santos
Criador Davson Santos 24/09/2022

Fala mestre, tudo bem?

 

fiz uns pequenos ajustes no TenantMiddleware e esta funcionando perfeitamente para o meu proposito, mas empaquei num detalhe e queria saber se tem como ajusta.

quando acesso a url principal myapp.com carrega a index e quando carrego client.myapp.com carrega a mesma index da url principal.

duas formaas resolveriam a questão:

1) quando acessar client.myapp.com queria que carregasse uma rota especifica. (não consegui fazer)

2) quando acessar client.myapp.com redireciona para outra rota. (Fica num loop infinito)

 

segue o codigo abaixo ... se tiver uma idea de como resolve agradeco.

 

public function handle($request, Closure $next)
    {
        $managerT = app(CompanyManager::class);
        $tenant = $managerT->tenant();

        if (($request->getHost() != config('tenant.main_domain')) || (route('web.login') == $request->url())) {
            if (!$tenant) {
                return redirect()->route('site.home');
            }else if($request->url() == route('web.register')){
                return redirect()->route('web.mosaico');
            } else if ($tenant) {
                echo "tem tenent";
                $this->setSession($tenant->only([
                    'name', 'uuid'
                ]));
 
            }
        }
        return $next($request);
    }
Manager Carlos Ferreira 24/09/2022

Olá, Davson!
Tudo bem, e com você?

1) Carregar uma rota especifica seria redirecionar para um URL especifica?

2) Pode fazer um if para verificar se já não está na página (rota) desejada.

Compartilha o código full comigo, que te ajudo a resolver;

Carlos Ferreira
Criador Davson Santos 24/09/2022

para o entendimento ficar mas facil, vamos pegar o codigo do middleware do proprio cursoo].

 public function handle($request, Closure $next)

    {

        $managerT = app(ManagerTenant::class);

        $tenant = $managerT->tenant();

 

        if (!$tenant && $request->url() != route('tenant.404')) {

            return redirect()->route('tenant.404');

        } else if ($tenant) {

             //aqui nesse trecho quando esta ok o subdominio carrega a welcome (principal)
             // estou querendo ou redirecionar ou carregar uma tela personalizada para o subdominio
            //não consegui fazer o redirecionamento, fiucou no loop infinito.

 

            $this->setSession($tenant->only([

                'name', 'uuid'

            ]));

        }

 

        return $next($request);

    }

 

 

Davson Santos
Criador Davson Santos 24/09/2022

e outro fator e se tem como validar quando não há o subdomain. exemplo:

 

esta no cadastro na tabela tenant os subdomain e os host estão registrados

client1.myapp.com
client2.myapp.com

esse carregam normalmente, mas agora quando não esta nem cadastrado e nem visgistrado no host, exemplo: eu digito 

client3.myapp.com da erro DNS_PROBE_FINISED_NXDOMAIN, tem como validar esse tipo de erro?

 

Davson Santos
Manager Carlos Ferreira 24/09/2022

Você está usando exatamente este subdomínio?
client3.myapp.com

Quando digita *.myapp.com, está tentando buscar este subdomínio neste domínio "myadpp.com", para consegui manter a request local, precisa criar no arquivo de host a configuração que direciona dos subdomínios para local
127.0.0.1    client1.myapp.com
127.0.0.1    client2.myapp.com
127.0.0.1    client3.myapp.com

---

Sobre o loop infinito, como ficou o código? Preciso ver qual URL está direcionando, para conseguir te ajudar com mais precisão. Compartilha comigo o código full;

Carlos Ferreira
Criador Davson Santos 24/09/2022

Opa, relação a pergunta original eu consigui resolver com uma logica no controller. VLW

Davson Santos
Sabe a Solução? Ajude a resolver!

Precisa estar logado para conseguir responder a este ticket!

Clique Aqui Para Entrar!