Desafio para vaga de emprego na empresa 4Linux!
Começamos com a tela de login simples, onde a validação dela está sendo rodada em uma API com MongoDB e como validação o JWT.
Quando o usuário clica em entrar é feito uma validação no banco de dados com os dados que o usuário digitou no input, sendo que se tiver algum erro, a API retorna o erro especifico e retorna para o front.
Quando der match com o usuário e a senha, um token JWT é gravado no localStorage e dai é feito a validação: se o usuário estiver com um token válido no localStorage, ele não precisa ficar na tela de login, redirecione ele direito para a home, localizada na rota "/".
E depois que o usuário já foi autenticado, é exibido cards com um retorno de uma Public API.
Inicialmente eu iria fazer o projeto com o firebase, como eu já tenho o conhecimento e ele tem funções prontas de auth, facilitaria muito todo o processo, mas a parte de autenticação deles só aceita email e senha, e no caso do sistema, seria usuário e senha, então optei para uma construção de API. Ao longo do desenvolvimento do desafio, o ponto que tive mais dificuldade foi na parte de como eu poderia validar o login e como eu poderia limitar as rotas de acordo com a autenticação do usuário.
- React.js - Framework web usado
- MongoDB - No banco de dados para salvar os usuários
- Express - Construção da API de autenticação
- React Router Dom - Gerenciamento de rotas
- JSON Web Tokens - Usado na validação do login