ฉันควรตั้งค่าเซสชัน API และไคลเอนต์ที่ไหน

นี่คือสถานการณ์ ฉันได้ตั้งค่าการติดตั้ง Codeigniter ไว้ 2 รายการ

คนหนึ่งจะเป็นลูกค้าและอีกคนจะเป็น API จะปรับปรุงเรื่องนี้ต่อไป

  1. ไคลเอนต์จะไม่ถูกสร้างขึ้นจาก CI อีกต่อไป เนื่องจากฉันไม่ได้ใช้ฟังก์ชั่นของมัน ฉันแค่อยากจะเริ่มต้นจากกรอบงาน mvc ทันที

คำถามของฉันคือฉันควรจัดเก็บเซสชันไว้ที่ไหน ระหว่างการเข้าสู่ระบบ

ด้านล่างนี้เป็นวิธีที่ฉันทำ แต่ฉันคิดว่าฉันทำผิด

  1. ฉันสร้างการเข้าสู่ระบบจาก ลูกค้า สิ่งนี้จะส่งข้อมูลรับรองการเข้าสู่ระบบไปที่ api จากนั้นตรวจสอบข้อมูลเหล่านี้ที่ส่งโดย ไคลเอนต์ และจะส่งคืน ข้อความ/ตอบกลับ ไม่ว่าจะเป็นข้อมูลรับรองการเข้าสู่ระบบหรือไม่ ถูกต้องหรือไม่

หากรายละเอียดการเข้าสู่ระบบถูกต้อง api จะตั้งค่าเซสชันในตัวควบคุมในลักษณะนี้

if(true) {
    $this->session->set_userdata($array);
}

นี่คือใน login_controller ที่ฉันสร้างขึ้น นี่เป็นวิธีที่เหมาะสมสำหรับการตั้งค่าเซสชันสำหรับ ไคลเอนต์ ของ API หรือไม่


person Joey Hipolito    schedule 04.11.2012    source แหล่งที่มา


คำตอบ (1)


คุณมีแนวคิดที่ถูกต้อง คุณเพียงต้องการตั้งค่าข้อมูลผู้ใช้เซสชันเมื่อมีการยืนยันผู้ใช้ที่ให้ข้อมูลรับรองที่ถูกต้อง

อย่างไรก็ตาม ตรวจสอบให้แน่ใจว่าคุณใช้คุกกี้ที่เข้ารหัส และหากคุณจัดการข้อมูลที่ละเอียดอ่อน ให้จัดเก็บข้อมูลเซสชันของคุณไว้ในฐานข้อมูล การจัดเก็บมันไว้ในฐานข้อมูลทำให้เกิดความแปลกประหลาดบางประการเกี่ยวกับวิธีการทำงานของเซสชันใน CodeIgniter (โดยหลักๆ จะมี flashdata) แต่ประโยชน์เพิ่มเติมของการระบุตัวตนเชิงบวกอาจจะคุ้มค่า

ด้วยการจัดเก็บข้อมูลเซสชันไว้ในฐานข้อมูล คุณสามารถตรวจสอบผู้ใช้ได้อย่างมั่นใจมากขึ้นว่าเป็นใครที่พวกเขาอ้างว่าเป็น (ในแง่ของ ID เซสชัน ฯลฯ) เหตุผลก็คือเนื่องจากข้อมูลเซสชันถูกเก็บไว้ในฐานข้อมูลเท่านั้น และไม่อยู่ในคุกกี้เซสชัน (ซึ่งเก็บเฉพาะ ID เซสชันและข้อมูลอื่น ๆ บางส่วน) ด้วยวิธีนี้ แม้ว่าบางคนสามารถถอดรหัสคุกกี้ได้ แต่พวกเขาไม่สามารถแก้ไขข้อมูลผู้ใช้ของตนให้ปลอมเป็นบุคคลอื่นได้ เหมือนกับที่คุณอาจทำได้โดยใช้วิธีเฉพาะคุกกี้เท่านั้น

person Brendan    schedule 05.11.2012