Chciałbym wiedzieć, której metody http powinienem użyć podczas wykonywania żądania logowania i dlaczego? Ponieważ to żądanie tworzy obiekt (sesję użytkownika) na serwerze, myślę, że powinno to być POST, co o tym myślisz? Ale ponieważ żądanie logowania powinno być idempotentne, może to być PUT, prawda?
To samo pytanie w przypadku żądania wylogowania, czy powinienem użyć metody DELETE?
źródło
Uważam, że możesz przełożyć metody LOGIN & LOGOUT na podstawowe operacje CRUD CREATE & DELETE. Ponieważ tworzysz nowy zasób o nazwie SESSION i niszczysz go podczas wylogowywania:
Nigdy nie zrobiłbym LOGOUT as GET tylko dlatego, że każdy mógłby przeprowadzić atak po prostu wysyłając wiadomość e-mail z tagiem IMG lub linkiem do strony internetowej, na której taki tag IMG istnieje. (
<img src="youtsite.com/logout" />
)PS Przez długi czas zastanawiałem się, jak stworzyć RESTful login / logout i okazało się, że to naprawdę proste, robisz to tak, jak opisałem: użyj / session / endpoint z metodami CREATE i DELETE i wszystko jest w porządku. Możesz także użyć UPDATE, jeśli chcesz zaktualizować sesję w taki czy inny sposób ...
źródło
Oto moje rozwiązanie oparte na przewodnikach i rekomendacjach REST:
LOGIN - utwórz zasób
Żądanie:
Odpowiedź:
LOGOUT - usuń zasób
Żądanie:
Odpowiedź:
źródło
Odnośnie sposobu wylogowania:
W dokumentacji Spring (Java Framework) stwierdzają, że preferowane jest żądanie POST, ponieważ GET naraża Cię na CSRF (Cross-Site Request Forgery), a użytkownik może zostać wylogowany.
Zobacz: https://docs.spring.io/spring-security/site/docs/current/reference/html/web-app-security.html#csrf-logout
Logując się również należy użyć POST (treść może być zaszyfrowana, zobacz pozostałe odpowiedzi).
źródło
Do logowania powinniśmy użyć metody POST. Ponieważ nasze dane logowania są bezpieczne, co wymaga bezpieczeństwa. W przypadku metody POST dane przesyłane są na serwer w paczce. Ale w metodzie GET dane są wysyłane na serwer, a następnie adres URL, taki jak dołączony do żądania url, który będzie widoczny dla wszystkich.
Dlatego dla bezpiecznego procesu uwierzytelniania i autoryzacji powinniśmy używać metody POST.
Mam nadzieję, że to rozwiązanie Ci pomoże.
Dzięki
źródło
Do logowania używam POST, poniżej jest mój kod do metody LOGIN, której użyłem Nodejs z Express i Mongoose
źródło