Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Alterar método de logout #369

Open
Yoshida-Eduardo opened this issue Jun 25, 2018 · 1 comment
Open

Alterar método de logout #369

Yoshida-Eduardo opened this issue Jun 25, 2018 · 1 comment
Assignees
Labels
easy because this is easy to solve Important It's has a relevant issue MDS assigned to MDS team

Comments

@Yoshida-Eduardo
Copy link
Collaborator

Descrição

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

@Yoshida-Eduardo Yoshida-Eduardo added MDS assigned to MDS team easy because this is easy to solve Important It's has a relevant issue labels Jun 25, 2018
@Yoshida-Eduardo Yoshida-Eduardo self-assigned this Jun 25, 2018
@Yoshida-Eduardo
Copy link
Collaborator Author

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
easy because this is easy to solve Important It's has a relevant issue MDS assigned to MDS team
Projects
None yet
Development

No branches or pull requests

1 participant