Autenticação
Muitas vezes uma página como a de administração de clientes só deveria ser acessível para usuários que confiamos. Essa confiança acontece através do Data² ID Authentication Strategy. Com ele, é possível proteger uma rota de usuários que não estão autenticados no sistema.
Para isso, vamos precisar:
- Criar uma Data² Registry Table para guardar os dados dos usuários (como email e senha).
- Criar o Data² ID Authentication Strategy ligado a essa tabela.
- Criar uma página de autenticação (
Login). - Configurar o
Router Principalpara proteger a rota/clientes, que possui a página de administração de clientes, e adicionar a página deLoginaoRouter Principal.
Criando tabela de usuários
Dê um clique duplo no fundo do Builder, no menu, selecione a aba Registry e clique em Table.
Dê um nome para sua tabela, como Usuarios.
Clique em Schema para configurar os campos que cada usuário terá.
- Adicione um campo
emailcomComponentdo tipodata2-core-primitives@String. - Adicione um campo
passwordcomComponentdo tipodata2-core-types@Password.
Clique no + para adicionar um DataSet e dê um nome a ele também, como Usuarios DataSet.
Vamos adicionar um usuário diretamente na tabela, para isso:
- Clique em email e coloque
teste@teste.com.br - Clique em password e coloque
123.
Você irá notar, que o 123 se torna um valor bem diferente disso. Isso acontece pois campos que são data2-core-types@Password são armazenados de forma segura e criptografada.
AuthenticationStrategy
Dê um clique duplo no fundo do Builder, no menu selecione id e clique em Authentication Strategy.
Selecione ele e:
- Habilite o parâmetro
Verifierclicando no círculo, e selecione oUsuarios DataSetque acabou de ser criado.
- Clique no parâmetro
Credentials, e vamos configurar quais campos serão usados para o usuário se autenticar. Nesse caso, adicioneEmailePassword.
Criando uma página de Login
Dê um clique duplo no fundo do Builder, no menu selecione ui e clique em Artboard. Dê um nome a esse Artboard de Login.
Desenhe um bloco maior, e três blocos menores dentro dele que serão: campo de email, campo de senha e botão de login.
Selecione os blocos que serão o campo de email e campo de senha, clicando no primeiro bloco, e depois segure SHIFT antes de clicar no segundo para conseguir selecionar múltiplos blocos. Mude ambos de data2-core-primitives@Block para data2-blocks@DataFieldBlock.
Clique em outro bloco para salvar, selecione novamente o campo de email e agora é necessário configurar:
- O parâmetro
Datasetdo primeiro bloco será oAuthenticationStrategyque foi criado. - O parâmetro
FieldseráEmail.
Para o campo de password:
- O parâmetro
Datasetdo primeiro bloco será oAuthenticationStrategy. - O parâmetro
FieldseráPassword. - O parâmetro
Typeserápassword, pois quando o usuário digita sua senha, não queremos que a senha fique visível na tela.
Selecione o terceiro bloco, que servirá como botão de Login, e:
- Adicione um texto em
Text:Login. - Centralize o texto habilitando
Text Format, selecione a centralização horizontal e a centralização vertical.
- Habilite o parâmetro
On Click, noModuleselecione oAuthenticationStrategy, naInteractionselecioneLogin.
Configurando o Router
Selecione o Router criado anteriormente. No parâmetro Login, habilite e selecione o Artboard que foi criado para ser usado como página de login.
Para adicionar autenticação na rota de /clientes, clique em Routes para visualizar as rotas, clique no item que corresponde à rota de /clientes.
Clique em Policies e adicione um item para adicionar uma Policy, clique nesse item e no parâmetro Authentication Strategy selecione seu AuthenticationStrategy. Clique fora para salvar.
Verificando o funcionamento
Dê um preview na sua Application. Você deverá ser levado à sua pagina inicial, e ao tentar navegar para a rota /clientes, ao invés da página de administração de clientes, a página de login deve aparecer em seu lugar!
Tente fazer login com o usuário que foi criado na tabela de usuários (neste caso, teste@teste.com.br com senha 123) e a página de administração de clientes vai aparecer.
Próximos passos
Se você chegou até aqui, você criou uma aplicação para gerenciar seus clientes de forma autenticada, parabéns!
Você percebeu que o usuário só consegue se logar, e não consegue se deslogar? Como desafio, crie um botão de Logout no Artboard de clientes! Dica: O AuthenticationStrategy tem uma Interaction para fazer isso.