Laravel 8 讓其它設(shè)備上的 Session 失效

2021-07-17 17:17 更新

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

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

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

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

use Illuminate\Support\Facades\Auth;

Auth::logoutOtherDevices($password); 

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

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

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

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)