【发布时间】:2020-11-25 20:33:24
【问题描述】:
我用 Fortify 身份验证构建了一个 Laravel 应用程序。有一个要求,当用户登录时,他们应该从所有其他设备上注销。在 Laravel 文档中,提到我可以使用 Auth::logoutOtherDevices($password); 方法。但目前尚不清楚如何将其与 Fortify 一起使用。
我尝试在Fortify::authenticateUsing(function (Request $request) {}) 函数中使用它,但它不起作用,因为它在Illuminate\Auth\SessionGuard 类的logoutOtherDevices() 方法中检查User 实例。
通过在Laravel\Fortify\Http\Controllers\AuthenticatedSessionController 类中进一步挖掘,我发现我可以在app/config/fortify.php 中传入一个自定义登录管道数组,并添加我自己的处理程序以从那里调用logoutOtherDevices() 方法。
我设法让它以这种方式工作。但是我觉得这种方法有些不对劲,我想看看是否有明显的方法可以做到这一点(我在这里遗漏了什么吗?)
谢谢。
【问题讨论】:
-
能否请您提供解决方案,您是如何设法使其工作的? TY
-
@AlexanderPop 我已将其添加为答案,因为这是目前唯一的方法。请看一看。希望它会有所帮助。
标签: php laravel laravel-fortify