Laravel 8 讓其它設備上的 Session 失效

2021-07-17 17:17 更新

Laravel 還提供了一種機制,用于將其它設備上的用戶 Session 失效和「注銷」,而不會使當前設備上的 Session 失效。 當你想要用戶更改或更新密碼時可以使其他設備上的會話無效并且保持當前設備的登錄狀態(tài)時,可以使用此功能。

在開始之前,你應該確保 Illuminate\Session\Middleware\AuthenticateSession 在你的 app / Http / Kernel.php 類中的 web 中間件組中存在并且沒有被注釋掉:

'web' => [
    // ...
    \Illuminate\Session\Middleware\AuthenticateSession::class,
    // ...
], 

然后, 你就可以使用 Auth facade 上的 logoutOtherDevices 方法。此方法要求用戶提供其當前密碼,你的應用程序應通過輸入表單接受該密碼:

use Illuminate\Support\Facades\Auth;

Auth::logoutOtherDevices($password); 

當調(diào)用 logoutOtherDevices 方法時,用戶的其他 Session 將完全失效,這意味著它們將「退出」他們之前通過身份認證的所有看守器。

注意:將 AuthenticateSession 中間件與 login 路由的自定義路由名結合使用時,必須覆蓋應用程序異常處理程序上的 unauthenticated 方法,以正確地將用戶重定向到登錄頁面。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號