A plataforma disponibiliza formas de integrar os dados de autenticação com aplicações de terceiros. Esta integração acontece através do compartilhamento de credenciais.
Com isso quando a plataforma abre uma tela de um sistema externo, através do menu, informações são enviadas para a tela aberta. Essas informações contém:
- URL base da plataforma
- Token de acesso do usuário conectado
Resumidamente, com a URL base montam-se os requests para a plataforma, sendo que em cada request deve ser enviado o token de acesso no HEADER “Authorization” (Bearer).
EM VÍDEO
SOBRE O TUTORIAL
Neste tutorial faremos um projeto FrontEnd que consome a API de usuários da plataforma, para obteção dos dados do usuário logado. O projeto será construído utilizando Angular 9 + Bootstrap 4.5.0.
PRÉ CONDIÇÕES
Para executar este tutorial você deverá ter:
- NodeJs 10 ou superior instalado
- NPM 6 ou superior instalado
- Uma IDE de sua preferência
- Uma conta na Amazon Cloud Services e algum conhecimento acerca dos serviços S3 e CloudFront
CRIANDO O PROJETO
Para criar o projeto digite:
Isso instalará o Angular cli, responsável por gerar o projeto base.
Digite:
Isso criará o projeto de fato.
Entre na pasta do projeto digitando:
Agora iremos instalar alguns componentes que utilizaremos no projeto:
Instale o componente platform-data:
Instale o component senior-core:
Instale o bootstrap:
No arquivo src/style.css importe o Bootstrap adicionando ao arquivo a seguinte linha de código:
CRIANDO O SERVICE QUE FARÁ A COMUNICAÇÃO COM A PLATAFORMA
Crie um serviço através do comando:
Abra o arquivo gerado app.service.ts na pasta src/app/ e altere conforme abaixo:
A function getUser busca os dados do usuário com a url base e o token, através do componente platform-data e os utiliza para fazer a chamada do endpoint /platform/user/getUser, que retorna os dados do usuário logado.
O response será:
Com base na resposta, o sistema que está integrando deverá validar:
- Se o campo “username” (ex: john.doe) existe na base de dados dele
- Se o campo “tenantDomain” ou “tenantName” batem com o usuário da base de dados efetuando o login
Medidas de segurança:
- Sistema sendo integrado faça a requisição para URLs configuráveis, uma vez que para teste será usado um ambiente de homologação.
- O sistema deve validar o tenant do usuário que está logando, para garantir que usuários de mesmo nome façam acesso cruzados em outros tenants.
Agora será necessário adicionar no modulo o novo serviço, altere o arquivo src/app/app.module.ts
Crie o arquivo src/app/user-data.ts:
Altere o arquivo src/app/app.component.ts adicionando:
Altere também o arquivo src/app/app.component.html
IMPLANTANDO O PROJETO
Uma vez criada a aplicação faça o deploy da mesma em seu serviço de preferência, lembrando que, o frontend deve estar servido sob https.
Antes de implantar lembre-se de criar o dist do seu frontend. Para isso basta rodar um dos comandos abaixo:
- Caso seja para ambiente de desenvolvimento (platform-homologx): ng build
- Caso seja para produção (api.senior.com.br): ng build –prod
Ambos os comandos vão gerar a pasta dist com os arquivos para serem implantados dentro da plataforma.
Siga os passos do tutorial de implantação de frontend customizado para realizar a implantação do projeto. Implantando o front-end customizado.
Pronto, concluída a configuração do módulo basta acessar sua nova aplicação integrada através do menu.
Os fontes deste tutorial podem ser encontrados no https://github.com/dev-senior-com-br/tutorial-integrando-login-plataforma.