Saya menyadari ini terlambat beberapa tahun, tetapi saya pikir saya dapat memperluas jawaban Conor dan menambahkan sedikit lebih banyak ke dalam diskusi.
Dapatkah seseorang memberi saya deskripsi langkah demi langkah tentang cara kerja otentikasi berbasis cookie? Saya tidak pernah melakukan sesuatu yang melibatkan otentikasi atau cookie. Apa yang perlu dilakukan browser? Apa yang perlu dilakukan server? Dalam urutan apa? Bagaimana kita menjaga keamanan?
Langkah 1: Klien> Mendaftar
Sebelum hal lain, pengguna harus mendaftar. Klien memposting permintaan HTTP ke server yang berisi nama pengguna dan kata sandinya.
Langkah 2: Server> Menangani pendaftaran
Server menerima permintaan ini dan memotong kata sandi sebelum menyimpan nama pengguna dan kata sandi di basis data Anda. Dengan cara ini, jika seseorang mendapatkan akses ke database Anda, mereka tidak akan melihat kata sandi aktual pengguna Anda.
Langkah 3: Klien> Login pengguna
Sekarang pengguna Anda masuk. Ia memberikan nama pengguna / kata sandi dan sekali lagi, ini diposting sebagai permintaan HTTP ke server.
Langkah 4: Server> Memvalidasi login
Server mencari nama pengguna dalam database, memilah-milah kata sandi login yang disediakan, dan membandingkannya dengan kata sandi yang sebelumnya di-hash dalam database. Jika tidak memeriksa, kami dapat menolak akses mereka dengan mengirimkan kode status 401 dan mengakhiri permintaan .
Langkah 5: Server> Membuat token akses
Jika semuanya memeriksa, kita akan membuat token akses, yang secara unik mengidentifikasi sesi pengguna. Masih di server, kami melakukan dua hal dengan token akses:
- Simpan di database yang terkait dengan pengguna itu
- Tempelkan ke cookie respons untuk dikembalikan ke klien. Pastikan untuk menetapkan tanggal kedaluwarsa / waktu untuk membatasi sesi pengguna
Untuk selanjutnya, cookie akan dilampirkan ke setiap permintaan (dan tanggapan) yang dibuat antara klien dan server.
Langkah 6: Klien> Membuat permintaan halaman
Kembali ke sisi klien, kami sekarang login. Setiap kali klien membuat permintaan untuk halaman yang memerlukan otorisasi (yaitu mereka harus login), server mendapatkan token akses dari cookie dan mengeceknya terhadap yang dalam database yang terkait dengan pengguna itu. Jika check out, akses diberikan.
Ini seharusnya membuatmu memulai. Pastikan untuk menghapus cookie saat keluar!