Tôi đang phát triển phần quản lý người dùng của trang web sẽ lưu trữ một webcast. Mục tiêu là để đồng thời sử dụng cùng một tên người dùng (địa chỉ email). Tức là, chúng tôi không muốn hai cá nhân sử dụng một thông tin đăng nhập để xem sự kiện.Làm thế nào để ngăn chặn đăng nhập người dùng đồng thời trong trang web PHP/MySQL?
Tôi đã thiết lập bảng chứa dữ liệu đăng ký người dùng có regID làm khóa chính. Suy nghĩ của tôi là tạo một bảng lịch sử đăng nhập với tên người dùng là khóa chính, khóa ngoài cho tên người dùng trong bảng đăng ký. Bảng lịch sử đăng nhập sẽ chỉ đơn giản là dấu thời gian khi người dùng đăng nhập vào trang web. Tuy nhiên, điều này sẽ không hoàn thành mục tiêu ngăn chặn nhiều cá nhân của tôi sử dụng cùng một tên đăng nhập.
Thay vào đó, sẽ tốt hơn nếu bạn có trường trạng thái đăng nhập trong lịch sử đăng nhập hoặc bảng người dùng được đặt thành 1 cho đăng nhập và 0 để đăng xuất? Nó sẽ cần một thủ tục lưu trữ để cập nhật giá trị khi đăng nhập và đăng xuất, và cần phải được xác thực khi người dùng đăng nhập sao cho nếu trạng thái đăng nhập = 1, người dùng đã đăng nhập và không thể đăng nhập lần thứ hai. Đây có phải là cách tiếp cận khả thi không?
Vui lòng chia sẻ các phương pháp khác mà bạn đã sử dụng để ngăn không cho các thông tin xác thực đăng nhập giống nhau được chia sẻ giữa nhiều cá nhân.
Cảm ơn, Sid
Thay thế "cookie" bằng "phiên" và thao tác này sẽ hoạt động tốt. Chỉ cần đảm bảo kiểm tra giá trị phiên đối với cơ sở dữ liệu trên mỗi yêu cầu và luôn đặt lại giá trị khi người dùng đăng nhập lại. Hai người dùng đang cố gắng xem trang sẽ liên tục đăng xuất lẫn nhau. – Charles
Có, cuộc gọi tốt, cập nhật bài đăng để đọc "phiên". – MrWhite
Tôi thích cách tiếp cận của bạn. Thông báo trước sẽ là người dùng thứ hai, khi cố gắng sử dụng một thông tin đăng nhập đã được sử dụng, nhận được một thông báo cho biết ID người dùng đã được đăng nhập hoặc một cái gì đó có hiệu lực đó. Chúng tôi muốn đảm bảo rằng mọi người xem webcast đều có thông tin đăng nhập của riêng họ. Cảm ơn :) – SidC