Nosso cliente tem um grande volume de usuários espalhados pelo mundo com diferentes tipos e nichos o que torna a autenticação um processo um tanto quanto complexo pois existem regras extremamente complexas para determinar o que de fato será exibido pós Login.
Modalidade: Cliente B2E, B2B, B2B2E
Ambiente: VTEXIO
Tipo de desenvolvimento: APP CUSTOM
Premissa: Autenticar usuários em diferentes portais.
Nosso cliente tem um grande volume de usuários espalhados pelo mundo com diferentes tipos e nichos o que torna a autenticação um processo um tanto quanto complexo pois existem regras extremamente complexas para determinar o que de fato será exibido pós Login.
Apesar de parecer um Login, não é tão simples assim e vamos desbravar essas peculiaridades a partir daqui. Por existir N tipos de clientes nosso cliente decidiu segmenta-los em 4 modalidades: Cliente Final, Parceiro (B2B), Colaboradores (B2E) e Universitários que se assemelha ao B2E. Cada um desses clientes possui uma política de vendas, uma priceTable, uma gama de produtos e condições de pagamentos. Dentro dessas 3 modalidades ainda temos casos específicos onde um cliente pode ser as 3 coisas ao mesmo tempo.
Como tudo isso é validado dentro da VTEX não há como utilizar uma aplicação externa para tal coisa (na verdade até é possível, mas perderia milhares de registros).
O que nossa App faz?
Construímos 2 Apps que se comunicam entre si (Service back-end, e Front-end). A App de serviços é responsável por definir quais serão as condições de login daquele usuário com base no momento de acesso. Cada um dos 3 ambientes citados acima possui uma URL distinta que caracteriza o portal a ser acessado.
Com isso a App de serviço valida o domínio acessado, o e-mail ou documento do cliente (código de matrícula, BIN do cartão de crédito, registro único de universitário), campos definidos para aceitação de acordo com termos, condições de navegação e coleta de dados (para caráter judicial como GDPR e LGPD) e, com todas essas informações, realiza a definição do usuário.
Neste cenário, caso estejamos acessando o portal de universitários e não possuirmos isso no cadastro, não será permitido nosso acesso ao portal, mesmo que já tenhamos um cadastro ativo na plataforma, e isso serve para os demais portais.
Depois do processo de validação finalizado, nossa App utilizará esse usuário, definir qual price Table será utilizada, qual o cluster pertence, atualizará os dados no Masterdata e depois de tudo isso fará a comunicação com um Provider definido na VTEX e tudo isso sem usar um back-end externo.
O cadastro/manutenção desses usuários é feito por serviços externos.
A App de Front-end fornece uma tela de login customizada onde são aceitos vários parâmetros para se autenticar (semelhante a ferramentas de login do mercado).