作爲管理員我想從應用程序註銷特定用戶。註銷特定用戶由管理員Laravel 5.2
我試過下面的代碼讓用戶從應用程序註銷。
Auth::logout();
但不是註銷該特定用戶,它使管理員註銷。 我從服務器獲取會話ID,現在我很困惑如何通過該會話ID來清除特定用戶會話,以便特定用戶註銷。
作爲管理員我想從應用程序註銷特定用戶。註銷特定用戶由管理員Laravel 5.2
我試過下面的代碼讓用戶從應用程序註銷。
Auth::logout();
但不是註銷該特定用戶,它使管理員註銷。 我從服務器獲取會話ID,現在我很困惑如何通過該會話ID來清除特定用戶會話,以便特定用戶註銷。
你不能這麼做,因爲所有的Auth:logout都是刪除會話cookie。
當然,您不能訪問其他用戶的cookies。
根據您的會話驅動程序,您可能會使會話服務器端無效。
例如,如果駕駛員數據庫,它可以作爲一個DB查詢刪除會話ID一樣簡單(但遠,你必須分析所有會話的有效載荷,以找到正確的用戶ID)
一種更簡單的方法是將session_token字段添加到用戶表中。在登錄時,您會生成一個隨機值並將其存儲在會話和數據庫中。然後在中間件中,檢查數據庫的session_token與會話中的session_token是否匹配。
要註銷用戶,只需在數據庫中重置令牌,然後我們開始吧!
可能像這樣可以幫助你。 讓我知道
$userToLogout = User::find(1); // Any userId you want to logout
Auth::setUser($userToLogout);
Auth::logout();
您可以在用戶表中創建一個新列名爲force_logout
例如。然後在每個請求中(在您的身份驗證中間件中),檢查這個force_logout
。然後你可以用Auth::logout();
註銷用戶,如果force_logout
是1
。
所以如果你想記錄任何用戶,你只需要的用戶1
。
你通常不能這樣做,但這取決於你如何保存用戶的會話。您可以通過從服務器的會話存儲中刪除來使用戶的會話無效。可能需要一段時間才能確定哪個會話屬於您想要註銷的用戶。 – josephting