Saya ingin tahu metode http mana yang harus saya gunakan saat melakukan permintaan masuk, dan mengapa? Karena permintaan ini membuat objek (sesi pengguna) di server, saya pikir itu harus POST, bagaimana menurut Anda? Tapi karena permintaan login harus idempoten, bisa jadi PUT, bukan?
Pertanyaan yang sama untuk permintaan logout, haruskah saya menggunakan metode DELETE?
sumber
Saya yakin Anda dapat menerjemahkan metode LOGIN & LOGOUT ke dalam operasi CRUD dasar CREATE & DELETE. Karena Anda membuat sumber daya baru yang disebut SESI dan menghancurkannya saat keluar:
Saya tidak akan pernah melakukan LOGOUT sebagai GET hanya karena siapa pun dapat melakukan serangan hanya dengan mengirimkan email dengan tag IMG atau tautan ke situs web di mana tag IMG tersebut ada. (
<img src="youtsite.com/logout" />
)PS Lama saya bertanya-tanya bagaimana Anda membuat login / logout RESTful dan ternyata itu sangat sederhana, Anda melakukannya seperti yang saya jelaskan: gunakan / sesi / endpoint dengan metode CREATE dan DELETE dan Anda baik-baik saja. Anda juga dapat menggunakan UPDATE jika Anda ingin memperbarui sesi dengan satu atau lain cara ...
sumber
Inilah solusi saya berdasarkan panduan dan rekomendasi REST:
LOGIN - buat sumber daya
Permintaan:
Tanggapan:
LOGOUT - hapus sumber daya
Permintaan:
Tanggapan:
sumber
Mengenai metode untuk keluar:
Dalam dokumentasi Spring (Java Framework), mereka menyatakan bahwa permintaan POST lebih disukai, karena GET membuat Anda rentan terhadap CSRF (Cross-Site Request Forgery) dan pengguna dapat dikeluarkan.
Lihat: https://docs.spring.io/spring-security/site/docs/current/reference/html/web-app-security.html#csrf-logout
Masuk juga harus menggunakan POST (badan dapat dienkripsi, lihat jawaban lain).
sumber
Untuk permintaan login kita harus menggunakan metode POST. Karena data login kita aman yang membutuhkan keamanan. Saat menggunakan metode POST, data dikirim ke server dalam bentuk bundel. Tetapi dalam metode GET data dikirim ke server diikuti oleh url seperti menambahkan dengan permintaan url yang akan terlihat oleh semua orang.
Jadi Untuk proses otentikasi dan otorisasi yang aman kita harus menggunakan metode POST.
Saya harap solusi ini akan membantu Anda.
Terima kasih
sumber
Untuk Login saya menggunakan POST, di bawah ini adalah kode saya untuk metode LOGIN saya menggunakan Nodejs dengan Express dan Mongoose
sumber