Você está vendo a versão antiga da página. Ver a versão atual.

Comparar com o atual Ver Histórico da Página

« Anterior Versão 5 Próxima »

O gerenciamento de tokens é um componente fundamental em sistemas que envolvem autenticação e autorização. Um token, nesse contexto, é uma representação digital de uma credencial de acesso, que pode ser usado para verificar a identidade do usuário e conceder permissões específicas. Eles desempenham um papel crucial na segurança e na eficiência das interações entre usuários e sistemas.

Tokens também podem ser utilizados para controlar sessões de usuário. Neste tutorial será apresentada uma solução para o gerenciamento de sessão de tokens no Cronapp, incluindo a validação desses tokens após login e logout do usuário.

Pré-requisitos

Antes de começar a seguir os passos do tutorial é preciso ter certeza de que se tem um ambiente minimamente preparado para reproduzir o exemplo. Abaixo estão os requisitos principais.

  1. Projeto do tipo web e mobile criado. Caso haja dúvidas de como criar esse tipo de projeto, acesse a documentação Criar projeto;
  2. Utilizar as funcionalidades do diagrama, como criar classes e gerar persistência. Caso haja dúvidas, acesse a documentação Diagrama;
  3. Criar blocos de programação. Caso haja dúvidas, acesse a documentação Bloco de programação.

Passos

Configurando o diagrama

Vamos dar início ao nosso tutorial criando uma nova classe no diagrama de dados, que será utilizada para armazenar o ID do token e sua validade, determinando se o token é válido ou não. Para começar, siga essas etapas: primeiro expanda o menu do tópico Diagrama de Dados e clique duas vezes no arquivo app (destaque 1 da Figura 1). Em seguida, crie uma classe, neste exemplo a nomeamos como Session, a qual deve conter dois atributos, id (Texto) e valid (Lógico), conforme a imagem abaixo. Após a criação da classe, gere a camada de persistência (destaque 2). 


Figura 1 - Classe Session no diagrama de dados

Criando os blocos de programação

Para o gerenciamento dos tokens, precisamos criar algumas funções de blocos de programação servidor que posteriormente serão adicionados em alguns eventos do projeto.

De início, criamos um bloco de programação servidor e nomeamos a primeira função como "criarIdParaToken" (Figura 2). Essa primeira função será utilizada para adicionar um ID único ao token do usuário logado, para isso utilizamos os blocos Cria Identificador Universal e Definir Variável de Token da Requisição.

Em seguida, adicionamos o bloco Inserir e configuramos os campos no retorno da função, esse bloco é responsável por salvar o ID do token na nossa tabela Session do banco de dados, juntamente com a informação de validade do token. A função configurada deve estar como a imagem abaixo.


Figura 2 - Função para criar um ID único para o token do usuário


A segunda função, nomeada como "tornarTokenInvalido" (Figura 3), será executada após o logout do usuário e terá como objetivo tornar inválido o token do usuário, mostrando que ele não está mais logado na aplicação. Para esta função, utilizamos os blocos Obter Variável do Token da Requisição e Atualizar. Para configurar bloco Atualizar, clique no ícone da engrenagem e, na janela de configuração...


Figura 3 - Função para tornar inválido o token do usuário


A terceira e última função, nomeada como "checarValidadeToken" (Figura 4), irá verificar a validade de um token nas requisições feitas, se o token não for válido será lançada uma exceção. Monte a sua função conforme a Figura 4. Nela utilizamos o bloco Se faça para verificar se o token ... 

Este bloco será responsável por checar validade do token nas requisições. Este bloco precisará retornar os Permissionáveis do papel ao final das validações necessárias. Essa função irá verificar as requisições. "Olha eu tenho um token aqui no meu cabeçalho, pega esse id e checa na tabela pra ver se esse id do token de um usuário são válidos." Se não forem válidos será lançado uma exceção.


Figura 4 - Função para verificar a validade um token


Figura 4.1 - Configurando bloco Abrir Consulta para Session


Figura 4.2 - Configurando bloco Abrir Consulta para RoleSecurable

Adicionando eventos e ações

Após criar os blocos de programação, precisamos adicioná-los a alguns eventos e ações do projeto (Figura 5). Para abrir essa funcionalidade, clique em Projetos Eventos e Ações no menu do sistema. Como mostra a imagem abaixo, a janela possuem alguns campos, os campos de Eventos permitem executar uma ação antes ou após um evento específico. Já os de Ações, substituem uma ação padrão do Cronapp por uma nova.

O primeiro evento que iremos vincular um bloco de programação é o Depois de fazer login, esse evento é executado após algum usuário logar na aplicação. Neste eventos vamos vincular a função "criarIdParaToken" (Figura 2), para isso basta clicar no ícone azul ao lado e selecionar a função especificada.

O segundo evento é o Depois de fazer logout, esse evento é executado após algum usuário sair da aplicação. Nele vamos vincular a função "tornarTokenInvalido" (Figura 3). Por último, na ação Obter Autorização do Papel, que obtém os permissionáveis vinculados a um grupo ou role, adicionamos o bloco "checarValidadeToken" (Figura 4). 


Figura 5 - Configurando eventos e ações

Executando/Testando o projeto

Após seguir os passos anteriores, salve tudo e execute o projeto. Na tela de login, insira um usuário e sua senha, para este exemplo, inserimos admin em ambos os campos e faça login na aplicação. 


Figura 6 - Tela de login


Após logar na aplicação, vamos acessar a opção de banco de dados (destaque 1 da Figura 7). Em seguida, clique na opção de Manipular dados. Faça uma consulta simples na tabela Session e observe token do usuário logado está como TRUE, ou seja, é um token válido pois o usuário está autenticado na aplicação. Em seguida, faça o logout do usuário, e novamente consulte a tabela Session, observe que o token está como falso, mostrando que o usuário não está mais logado na aplicação....


Figura 7 - Visualização do banco de dados


Nesta página

  • Sem rótulos