Gostaria de saber qual método http devo usar ao fazer uma solicitação de login e por quê? Como essa solicitação cria um objeto (uma sessão de usuário) no servidor, acho que deveria ser POST, o que você acha? Mas como a solicitação de login deve ser idempotente, pode ser PUT, não é?
A mesma pergunta para uma solicitação de logout, devo usar o método DELETE?
fonte
Eu acredito que você pode traduzir os métodos LOGIN e LOGOUT em operações CRUD básicas CREATE & DELETE. Como você está criando um novo recurso chamado SESSION e o destruindo ao fazer logout:
Eu nunca faria LOGOUT como GET só porque qualquer um poderia fazer um ataque simplesmente enviando um e-mail com a tag IMG ou link para um site onde essa tag IMG existe. (
<img src="youtsite.com/logout" />
)PS Há muito tempo que eu queria saber como você criaria um login / logout RESTful e descobri que é muito simples, você faz exatamente como eu descrevi: use / session / endpoint com os métodos CREATE e DELETE e você está bem. Você também pode usar o UPDATE se quiser atualizar a sessão de uma forma ou de outra ...
fonte
Aqui está minha solução com base em recomendações e guias REST:
LOGIN - criar um recurso
Solicitação:
Resposta:
LOGOUT - excluir um recurso
Solicitação:
Resposta:
fonte
Em relação ao método de logout:
Na documentação do Spring (Java Framework), eles afirmam que uma solicitação POST é preferida, uma vez que um GET o torna vulnerável a CSRF (Cross-Site Request Forgery) e o usuário pode ser desconectado.
Consulte: https://docs.spring.io/spring-security/site/docs/current/reference/html/web-app-security.html#csrf-logout
O login também deve usar POST (o corpo pode ser criptografado, veja as outras respostas).
fonte
Para solicitação de login, devemos usar o método POST. Porque nossos dados de login são seguros, o que precisa de segurança. Ao usar o método POST, os dados são enviados ao servidor em um pacote. Mas, no método GET, os dados são enviados ao servidor seguidos pela url, como anexar à solicitação de url, que será vista por todos.
Portanto, para um processo seguro de autenticação e autorização, devemos usar o método POST.
Espero que esta solução o ajude.
obrigado
fonte
Para Login eu uso POST, abaixo está o meu código para o método LOGIN eu usei Nodejs com Express e Mongoose
fonte