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?
Saya telah membaca tentang berbagai jenis otentikasi dan tentang cookie tetapi saya ingin deskripsi dasar tentang bagaimana menggunakan keduanya bersama-sama - Saya hanya membaca bahwa mereka sering digunakan bersama tetapi tidak dapat menemukan deskripsi bagaimana.
authentication
cookies
browser
Mastid
sumber
sumber
Jawaban:
Cookie pada dasarnya hanyalah sebuah item dalam kamus. Setiap item memiliki kunci dan nilai. Untuk otentikasi, kuncinya bisa berupa 'nama pengguna' dan nilainya akan menjadi nama pengguna. Setiap kali Anda membuat permintaan ke situs web, browser Anda akan memasukkan cookie dalam permintaan, dan server host akan memeriksa cookie. Jadi otentikasi dapat dilakukan secara otomatis seperti itu.
Untuk mengatur cookie, Anda hanya perlu menambahkannya ke respons yang dikirim server setelah permintaan. Browser kemudian akan menambahkan cookie setelah menerima respons.
Ada beberapa opsi yang dapat Anda konfigurasi untuk sisi server cookie, seperti waktu kedaluwarsa atau enkripsi. Cookie terenkripsi sering disebut sebagai cookie yang ditandatangani. Pada dasarnya server mengenkripsi kunci dan nilai dalam item kamus, sehingga hanya server yang dapat menggunakan informasi tersebut. Jadi cookie akan aman.
Browser akan menyimpan cookie yang ditetapkan oleh server. Di header HTTP setiap permintaan yang dibuat browser ke server itu, itu akan menambahkan cookie. Itu hanya akan menambahkan cookie untuk domain yang mengaturnya. Example.com dapat mengatur cookie dan juga menambahkan opsi di header HTTP untuk browser untuk mengirim cookie kembali ke subdomain, seperti sub.example.com. Peramban tidak akan dapat diterima untuk pernah mengirim cookie ke domain lain.
sumber
Saya menyadari ini terlambat beberapa tahun, tetapi saya pikir saya dapat memperluas jawaban Conor dan menambahkan sedikit lebih banyak ke dalam diskusi.
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:
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!
sumber
Otentikasi Berbasis Cookie
Otentikasi berbasis cookie bekerja secara normal dalam 4 langkah ini-
Browser akan mengirimkan ID sesi ini pada setiap permintaan berikutnya, ID sesi diverifikasi terhadap database, berdasarkan situs web sesi id ini akan mengidentifikasi sesi milik klien mana dan kemudian memberikan akses permintaan.
Setelah pengguna keluar dari aplikasi, sesi dihancurkan baik sisi klien maupun sisi server.
sumber