Repository navigation
Objetivo da Versão
Esta versão tem como principal objetivo corrigir a forma de armazenamento do token JWT, utilizado para autenticação de usuários. A mudança visa melhorar a segurança e a usabilidade do sistema de autenticação ao modificar o método de armazenamento do token, garantindo um melhor controle e mitigando possíveis riscos de segurança.
Principais Alterações
-
Mudança no Método de Armazenamento do Token JWT
- Antes: O token JWT era armazenado nos cookies do navegador. Isso poderia potencialmente expor o token a ataques de Cross-Site Scripting (XSS) e dificultar o controle granular de acesso ao token.
- Depois: O token JWT agora é armazenado no
localStoragedo navegador. Essa abordagem permite que o token seja menos suscetível a ataques de XSS, pois olocalStoragenão é enviado automaticamente em requisições HTTP como os cookies. Além disso, essa mudança facilita a manipulação do token no lado do cliente.
-
Atualizações na Função de Exibição de Modais (
showModal)- A função
showModalfoi otimizada para simplificar o controle da exibição do modal de alerta. Antes, o código gerenciava manualmente a largura da barra de progresso com vários cálculos e intervalos. - Melhorias:
- Redução de complexidade ao eliminar o controle manual da barra de progresso.
- Uso de
setTimeoutpara ocultar o modal de forma mais direta, melhorando a legibilidade e manutenção do código.
- A função
-
Refatoração de Código
- Remoção de Código Redundante: Funções duplicadas, como as que realizavam requisições e manipulavam modais, foram unificadas e simplificadas.
- Aprimoramento da Estrutura de Código: A função
makeRequestfoi ajustada para utilizaraxioscom async/await, proporcionando uma maneira mais moderna e eficiente de lidar com requisições HTTP, incluindo melhor tratamento de erros. - Código Mais Limpo e Eficiente: Com a remoção de código redundante e não utilizado, o código não só ficou mais legível, mas também mais performático, reduzindo o número total de linhas em 34.
Impacto das Mudanças
- Segurança Melhorada: Ao armazenar o token JWT no
localStorageem vez de cookies, o sistema de autenticação se torna menos vulnerável a ataques de XSS, já que olocalStoragenão é automaticamente enviado com requisições HTTP. Além disso, o controle do token é mantido inteiramente no lado do cliente. - Usabilidade e Experiência do Usuário: A melhoria no gerenciamento de modais oferece uma experiência mais suave para o usuário, sem delays ou comportamentos inesperados.
- Manutenção Simplificada: A refatoração do código torna o arquivo JavaScript mais fácil de entender e modificar, facilitando futuras manutenções e introduções de novos recursos.
Instruções de Atualização
- Atualizar Dependências: Certifique-se de que o
axiosestá corretamente instalado e configurado no seu projeto, caso não esteja, adicione-o usandonpm install axios. - Testar a Nova Implementação de Login: Verifique se, após o login bem-sucedido, o token JWT é armazenado corretamente no
localStoragee não em cookies. - Verificação de Modais: Teste a funcionalidade dos modais para garantir que eles exibem corretamente as mensagens de erro e sucesso, e que se comportam conforme esperado ao ocultar após o tempo especificado.
Próximos Passos e Melhorias Futuras
- Monitoramento Contínuo da Segurança: Considerar a implementação de medidas adicionais para proteger o
localStoragecontra possíveis acessos não autorizados, especialmente em ambientes de alto risco. - Implementação de Tokens de Atualização: Introduzir um sistema de refresh tokens para melhorar ainda mais a segurança e experiência de usuário, permitindo sessões persistentes sem a necessidade de re-autenticação constante.
- Testes Automatizados: Adicionar testes automatizados para validar o comportamento do login e armazenamento de tokens, garantindo que futuras mudanças no código não introduzam regressões.
Agradecimentos
Agradeço a @matteusmoreno por sua contribuição significativa para esta versão e por ajudar a melhorar a segurança e usabilidade do nosso sistema de autenticação.