Common problem with user online

Common problem with user online

ในการทำระบบผู้ใช้งานให้ปลอดภัย โดยไม่ให้มีการใช้ account ในการ login ซ้ำกันในเวลาเดียวกันนั้น โดยส่วนมากจะทำการสร้าง field เพื่อเก็บว่า user นั้นๆได้ทำการ login แล้วและทำการ set ค่ากลับเมื่อมีการ logout แต่ปัญหาที่พบของการทำงานแบบนี้คือ เหตุการณ์ที่ account นั้นๆไม่ทำการ logout ไม่ว่าจะด้วยเหตุผลใด ทำให้ไม่สามารถ login ได้อีกต่อไป

ตัวอย่างโครงสร้างตารางแบบนี้คือ

useridinteger
usernamevarchar
passwordvarchar
islogonboolean

จากปัญหาดังกล่าวเราสามารถแก้ไขได้โดย การออกแบบ policy ของ application ใหม่จากการตรวจสอบแค่ว่า logon หรือยัง เปลี่ยนเป็นเมื่อไม่มี activity เกินเวลาที่กำหนดให้ถือว่าเป็นการ logoff ซึ่ง policy แบบนี้จะเห็นได้ใน application ที่มีการติดต่อสื่อสารในฝั่ง server application ทั่วไปที่เรียกว่าค่า timeout

ทีนี้เรามาดูการสร้างให้ application ของเรามี timeout อย่างง่ายๆกัน นี่คือตัวอย่างตารางข้อมูล

useridinteger
usernamevarchar
passwordvarchar
logontimedatetime

เรามาออกแบบ policy ของระบบคือให้มี timeout เป็น 10 นาที การทำงานก็คือ เมื่อมีการพยายาม login ก็ทำการตรวจสอบเพิ่มว่า logontime มีค่าน้อยกว่าเวลาปัจจุบันเกิน 10 นาทีหรือไม่ถ้าใช่ก็สามารถให้เข้าสู่ระบบได้

งานที่เพิ่มขึ้นมาคือเราต้องทำการบันทึกเวลาปัจจุบันเข้าไปเสมอเมื่อ user นั้นมี activity เท่านั้นครับ

Created on 2008.05.06

Our sponsors

Earn $$ with WidgetBucks!
Home | Services | Forum | Classified | Directories | Support | Contact
Copyright © 2005 - 2007 Modoeye.com, All Rights Reserved.
Disclaimer | Privacy policy | Term of Use | Term of Services
Valid XHTML Valid CSS! PHP: Hypertext Preprocessor MySQL database Apache Powered! FreeBSD Power to serve
Modoeye Sitemap Client login