Engenharia-de-Software-UFRPE / lanterna-verde

Lanterna verde é um sistema de avaliação do nível de práticas de greenwashing de uma organização ou produto.
2 stars 5 forks source link

[Feature] Método POST para autenticação de usuários e administrador #5

Closed SteffanoP closed 2 years ago

SteffanoP commented 2 years ago

Essa Pull Request visa implementar um novo método POST no back-end do app lanternaverde_web, do qual implementa um método de autenticação e redirecionamento de usuários para suas respectivas URL's.

O Problema

Uma das implementações principais desse projeto é poder autenticar usuários de acordo com suas entidades, por exemplo, em um campo de login, devemos autenticar 3 tipos de usuários: Administrador, Analista e Empresa. Além disso, devemos implementar o redirecionamento de cada usuário sua tela em específico.

Implementação

O método de implementação busca autenticar o usuário de acordo com as credenciais recebidas por um request do tipo POST. Por meio de um formulário POST (com chaves de username e password), os usuários são autenticados de acordo, caso não, os usuários são avisados por meio de uma resposta HTTP.

Caso o usuário possa ser autenticado no sistema, seletivamente o método irá redirecionar o usuário para a sua tela específica. Atualmente essa função pode ser realizada para dois tipos de usuário (Analista e Administrador), caso o usuário não seja não tenha uma especialidade específica, um erro de operação é gerado.

A implementação do método não considera o uso de CSRF tokens para funcionalidade de segurança na autenticação, e por sua vez deve ser tratado posteriormente como requisito não funcional.

Notas do desenvolvedor

Com o uso desse método, ficará fácil de implementar a funcionalidade de autenticação para os times de front-end. Dessa forma, mantém-se um login único para todos os tipos de usuário e redireciona-os de acordo.

Outro ponto, se trata da separação da entidade Administrador de Super Administrador. Anteriormente consideramos o uso do Super Administrador, como administrador, mas acaba não sendo viável para a estrutura do Administrador, dada a necessidade de um Super Administrador, do qual poderá gerenciar o site como um desenvolvedor ou para a manutenção de usuários administradores. Essa discussão é longa e deve ser tratada na Sprint Review.

Objetivos

SteffanoP commented 2 years ago

[US-L-12] Como administrador desejo me autenticar no campo de administrador do sistema. (BV-50)

SteffanoP commented 2 years ago

[US-A-1.1]Implementar funcionalidade para autenticação

SteffanoP commented 2 years ago

Pessoal do @Engenharia-de-Software-UFRPE/mavericks-backend do analista, pedi a revisão de vocês, pois o método também envolve a autenticação e login do Analista.