ฉันรู้ว่านี่เป็นเวลาหลายปีแล้ว แต่ฉันคิดว่าฉันสามารถขยายคำตอบของ Conor และเพิ่มการอภิปรายได้อีกเล็กน้อย
ใครสามารถให้คำอธิบายทีละขั้นตอนเกี่ยวกับวิธีการตรวจสอบความถูกต้องตามคุกกี้ได้ ฉันไม่เคยทำอะไรเกี่ยวกับการรับรองความถูกต้องหรือคุกกี้ เบราว์เซอร์ต้องทำอะไร เซิร์ฟเวอร์ต้องการทำอะไร ในลำดับใด เราจะรักษาสิ่งต่าง ๆ ให้ปลอดภัยได้อย่างไร
ขั้นตอนที่ 1: ลูกค้า> การสมัคร
ก่อนอื่นผู้ใช้จะต้องลงทะเบียน ลูกค้าโพสต์คำขอ HTTP ไปยังเซิร์ฟเวอร์ที่มีชื่อผู้ใช้และรหัสผ่านของตน
ขั้นตอนที่ 2: เซิร์ฟเวอร์> การจัดการการลงทะเบียน
เซิร์ฟเวอร์ได้รับคำขอนี้และซ่อนรหัสผ่านก่อนที่จะจัดเก็บชื่อผู้ใช้และรหัสผ่านในฐานข้อมูลของคุณ วิธีนี้ถ้ามีคนเข้าถึงฐานข้อมูลของคุณพวกเขาจะไม่เห็นรหัสผ่านจริงของผู้ใช้
ขั้นตอนที่ 3: ไคลเอนต์> ล็อกอินผู้ใช้
ตอนนี้ผู้ใช้ของคุณเข้าสู่ระบบเขา / เธอให้ชื่อผู้ใช้ / รหัสผ่านของพวกเขาและอีกครั้งนี้จะถูกโพสต์เป็นคำขอ HTTP ไปยังเซิร์ฟเวอร์
ขั้นตอนที่ 4: เซิร์ฟเวอร์> ตรวจสอบการเข้าสู่ระบบ
เซิร์ฟเวอร์ค้นหาชื่อผู้ใช้ในฐานข้อมูลแฮชรหัสผ่านเข้าสู่ระบบที่ให้มาและเปรียบเทียบกับรหัสผ่านที่แฮชก่อนหน้านี้ในฐานข้อมูล ถ้ามันไม่ได้ตรวจสอบเราอาจปฏิเสธการเข้าถึงพวกเขาโดยการส่งรหัสสถานะ 401 และสิ้นสุดการร้องขอ
ขั้นตอนที่ 5: เซิร์ฟเวอร์> กำลังสร้างโทเค็นการเข้าถึง
หากทุกอย่างเช็คเอาท์เราจะสร้างโทเค็นการเข้าถึงซึ่งระบุเซสชันของผู้ใช้โดยไม่ซ้ำกัน ยังคงอยู่ในเซิร์ฟเวอร์เราทำสองสิ่งด้วยโทเค็นการเข้าถึง:
- เก็บไว้ในฐานข้อมูลที่เกี่ยวข้องกับผู้ใช้นั้น
- แนบไปกับคุกกี้การตอบกลับเพื่อส่งคืนไปยังไคลเอ็นต์ ตรวจสอบให้แน่ใจว่าได้ตั้งวันที่ / เวลาที่หมดอายุเพื่อ จำกัด เซสชันของผู้ใช้
ต่อจากนี้ไปคุกกี้จะถูกแนบไปกับทุกคำขอ (และการตอบสนอง) ที่ทำระหว่างไคลเอนต์และเซิร์ฟเวอร์
ขั้นตอนที่ 6: ไคลเอนต์> ส่งคำขอหน้า
กลับไปที่ฝั่งไคลเอ็นต์ตอนนี้เราเข้าสู่ระบบทุกครั้งที่ลูกค้าทำการร้องขอสำหรับหน้าเว็บที่ต้องการการอนุญาต (เช่นพวกเขาจำเป็นต้องเข้าสู่ระบบ) เซิร์ฟเวอร์ได้รับโทเค็นการเข้าถึงจากคุกกี้และตรวจสอบกับหนึ่ง ในฐานข้อมูลที่เกี่ยวข้องกับผู้ใช้นั้น หากตรวจสอบแล้วจะอนุญาตการเข้าถึง
คุณควรเริ่มต้นนี้ อย่าลืมล้างคุกกี้เมื่อออกจากระบบ!