Bunun yıllar geçtiğinin farkındayım, ama Conor'un cevabına genişleyebileceğimi ve tartışmaya biraz daha ekleyebileceğimi düşündüm.
Birisi bana çerez tabanlı kimlik doğrulamanın nasıl çalıştığının adım adım açıklamasını verebilir mi? Kimlik doğrulama veya çerez içeren hiçbir şey yapmadım. Tarayıcının ne yapması gerekir? Sunucunun ne yapması gerekir? Hangi sırayla? İşleri nasıl güvende tutarız?
1. Adım: İstemci> Kaydolma
Her şeyden önce, kullanıcının kaydolması gerekir. İstemci, sunucuya kullanıcı adını ve şifresini içeren bir HTTP isteği gönderir.
2. Adım: Sunucu> Kaydı işleme
Sunucu bu isteği alır ve kullanıcı adını ve şifreyi veritabanınıza kaydetmeden önce şifreyi hash eder. Bu şekilde, birisi veritabanınıza erişirse, kullanıcılarınızın gerçek şifrelerini görmez.
3. Adım: İstemci> Kullanıcı girişi
Şimdi kullanıcı oturum açıyor. Kullanıcı adını / şifresini veriyor ve yine sunucuya bir HTTP isteği olarak gönderiliyor.
Adım 4: Sunucu> Giriş onaylama
Sunucu, veritabanındaki kullanıcı adını arar, verilen oturum açma parolasını hash eder ve veritabanındaki daha önceki karma parolayla karşılaştırır. Kontrol etmezse, 401 durum kodu göndererek ve isteği sonlandırarak erişimini reddedebiliriz .
5. Adım: Sunucu> Erişim belirteci oluşturma
Her şey kontrol edilirse, kullanıcının oturumunu benzersiz bir şekilde tanımlayan bir erişim belirteci oluşturacağız. Hala sunucudayken, erişim belirteciyle iki şey yapıyoruz:
- Bu kullanıcıyla ilişkili veritabanında saklayın
- İstemciye döndürülecek bir yanıt çerezine ekleyin. Kullanıcının oturumunu sınırlamak için bir son kullanma tarihi / saati ayarladığınızdan emin olun
Bundan sonra, çerezler istemci ile sunucu arasında yapılan her talebe (ve yanıta) eklenecektir.
6. Adım: İstemci> Sayfa istekleri yapma
İstemci tarafında tekrar oturum açtık. İstemci, yetkilendirme gerektiren bir sayfa için her istekte bulunduğunda (yani oturum açmaları gerekir), sunucu çerezden erişim belirtecini alır ve bunu karşı kontrol eder o kullanıcıyla ilişkili veritabanında. Kontrol edilirse, erişim verilir.
Bu senin başlamanı sağlamalı. Çıkışta çerezleri temizlediğinizden emin olun!