fga-eps-mds / 2018.1-TropicalHazards-BI

Projeto de sistema e serviços para monitoramento de doenças tropicais e geração de indicadores de possíveis epidemias.
https://fga-eps-mds.github.io/2018.1-TropicalHazards-BI/
MIT License
13 stars 9 forks source link

Alterar método de logout #369

Open Yoshida-Eduardo opened 6 years ago

Yoshida-Eduardo commented 6 years ago

Descrição

Alterar o método de logout de post para get para evitar erros com csrf token.

Yoshida-Eduardo commented 6 years ago

Foi habilitada a possibilidade de efetuar o logout via get devido a problemas na requisição de logout no front end devido a erros com csrf token, pois sendo get um método http safe não é necessária a utilização deste token.

A configuração de logout via get entretanto não é recomendada, pelo comportamento atual dos browsers que realizam prefetch das páginas quando estão em idle para agilizar o carregamento das páginas, podendo potencialmente deslogar o usuário indesejadamente.

Entretanto pela forma que o logout foi programado no frontend não foi observado esse comportamento, optando-se por utilizar essa solução por ser uma maneira rápida de resolver este problema até a deadline.

Caso essa solução seja indesejada ou cause algum problema, pode-se optar por realizar o logout apenas via front-end, sem realizar requisição no backend. Pois considerando o padrão arquitetural REST utilizado pela api, a comunicação deve ser stateless isto é, as requests devem conter toda informação necessária para serem compreendidas e validas sem salvar dados no backend, ou seja, todo "state da sesão" é salvo no front-end.

Como optou-se pela utilização de JsonWebTokens, padrão de token que contem toda informação necessária para validar as requests encriptada, assim como sua data de expiração, o logout pode ser efetuado apenas via front-end(considerando que toda informação da sessão está contida neste token e que não está salva no backend, conforme o padrão REST) descartando esse token conforme a ação do usuário de logout ou a data de expiraçao do token.

Métodos http safe: https://tools.ietf.org/html/rfc7231#page-22 Logout: https://stackoverflow.com/questions/3521290/logout-get-or-post https://stackoverflow.com/questions/36294359/is-logout-useless-on-a-rest-api Rest: https://www.ics.uci.edu/~fielding/pubs/dissertation/rest_arch_style.htm#sec_5_1_3