Nếu bạn đang lưu trữ phiên trong cơ sở dữ liệu, hãy thêm một cơ chế theo đó userId được lưu trữ như một phần của bản ghi phiên trong cơ sở dữ liệu của bạn, tạo ra cái mà tôi muốn gọi là "phiên ngữ nghĩa". Khi người dùng đăng nhập, hãy kiểm tra xem liệu phiên khác đã tồn tại hay chưa; nếu vậy, hãy sử dụng session_id()
để sửa phiên mới thành ID của phiên cũ, ID này sẽ kết hợp với chúng (và nên thay đổi ID phiên mới của bạn cho tất cả các yêu cầu tiếp theo). Hãy đảm bảo chỉ thực hiện hành động này trong bước đăng nhập, nếu không bạn có thể gặp phải các điều kiện chạy đua kỳ lạ của hai phiên cố gắng trở thành nhau và "hoán đổi vị trí".