我有一個Web應用程序,由具有項目的用戶組成,項目屬於單個用戶並且可通過URI :root/project/[pid
]訪問。避免同時訪問Web應用程序中的共享資源
現在我有一箇中間件來限制用戶訪問其他項目。儘管我的Web應用程序中也有一項功能,用戶可以通過它與其他用戶共享他們的項目,因此多個用戶可以訪問單個共享項目。
問題是我不希望他們同時訪問同一個項目,比如說project1被user1和user2共享。可以同時訪問URI root/project/project1_id,但不能同時訪問。
我目前正在考慮如何做到這一點,我有一些想法,但想知道是否有最好或更簡單的方法來做到這一點。
我正在考慮改變數據庫中的項目表,使其每當用戶訪問項目網頁時都設置爲true,並在他/她離開網頁或會話結束時取消設置。
但我不確定這是否是最好的選擇。
我使用laravel作爲我的web應用程序的框架。所以在該框架內的解決方案將是偉大的
你想限制訪問某人的原因是什麼?你是否擔心兩個人同時編輯同一頁面? –
你的方法對我來說似乎很體面。但是你必須有一些_un_locking訪問的方式。這可以通過鎖定期限(locked_until)來處理。瞭解Web用戶什麼時候「完成」是一個棘手的問題,所以過期是必要的,因爲你不能指望用戶爲你解鎖文件。但是如果你想把這個責任推給用戶,你可以這樣做。另一個選擇是使用檢查和設置的方法來保存,然後允許2個人同時嘗試訪問,並在過渡期間發生變化時出錯。 –
@willis,它是因爲項目可以編輯,如果我允許項目的相同元素同時編輯或多或少,它可能會變醜 – Snedden27