- Criado por Laila Maria Vieira Souza, última alteração em 01/03/2024
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 4 Próxima »
Em sistemas que requerem autenticação e autorização, o uso de tokens é um elemento fundamental. Nesse contexto, um token pode ser utilizado para validar ou não a identidade de um usuário e permitir seu acesso a uma aplicação. Além disso, podem ser empregados para gerenciar sessões de usuários e impedir o uso de tokens expirados após logout.
Os projetos do Cronapp, a partir da versão 2.9.6-SP.40, possuem um mecanismo para invalidação de tokens. Esse recurso não é utilizado automaticamente em projetos anteriores a essa versão. No entanto, esses projetos antigos podem ser adaptados para esse novo formato. Nessa documentação, serão abordados mais detalhes dessa funcionalidade e as etapas necessárias para configurá-la em projetos antigos.
Tokens no Cronapp
Projetos do Cronapp criados a partir da versão 2.9.6-SP.40 incorporam um novo mecanismo para invalidação automática de tokens. Nesses projetos, essa funcionalidade é apresentada através da adição da classe "InvalidatedToken" no Diagrama de dados. Para mais detalhes dessa classe, consulte o tópico Configurando projetos antigos.
Esse recurso garante que, após o usuário fazer logout da aplicação, seu token fique imediatamente inválido, impedindo seu uso em outras situações, como em requisições REST. É importante destacar que a invalidação do token após logout da aplicação ocorre independente do tempo configurado na opção "Expiração do Token (segundos)" nas Configurações do projeto. Além disso, com esse novo recurso o token de autenticação de um usuário não é mais armazenado no Local storage da aba Application das ferramentas de desenvolvedor do navegador. Em vez disso, é armazenado no campo Cookie dessa mesma aba.
Como informado anteriormente, projetos antigos não são atualizados com esse recurso automaticamente, é preciso configurá-lo manualmente. O tópico a seguir destacará os passos necessários para essa configuração.
Configurando projetos antigos
Para iniciar a configuração, começaremos criando uma nova classe no Diagrama de dados, que servirá para armazenar o ID do token associado a um usuário e sua data de expiração. É fundamental observar que, para que este recurso funcione corretamente, a classe deve ser criada precisamente no diagrama "app". Além disso, tanto a classe quanto seus atributos devem ter exatamente os mesmos nomes e tipos especificados abaixo, caso contrário, o recurso não funcionará.
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 com o nome InvalidatedToken, a qual deve conter dois atributos, id
(tipo Texto) e expirationDate
(tipo Carimbo de Data e Hora), conforme a imagem abaixo. Após a criação da classe, gere a camada de persistência (destaque 2).
Figura 1 - Classe "InvalidatedToken" no diagrama de dados
Executando o projeto
Após finalizar os passos anteriores, execute o projeto e faça login na aplicação. Na imagem a seguir, é apresentado onde o token do usuário será armazenado. Acesse a ferramenta de desenvolvedor do navegador, na aba Application (destaque 1 da Figura 1.1) clique em Cookies (2) e, por fim, em AuthToken (3). Assim, o token do usuário será exibido abaixo.
Figura 1.1 - Token do usuário armazenado nos Cookies
Após efetuar logout da aplicação, o ID do token do usuário e sua data de expiração serão armazenados na tabela correspondente à classe "InvalidatedToken" no banco de dados. O tempo de expiração é determinado pelo valor configurado na opção "Expiração do Token (segundos)" nas Configurações do projeto. Quando o tempo de expiração desse token for atingido e um novo login for realizado na aplicação, esse registro será automaticamente removido da tabela.
Figura 1.2 - Registro do token de um usuário no banco de dados
Nesta página
- Sem rótulos