如何在Laravel中覆盖logAutootherDevices()函数

如何在Laravel中覆盖logAutootherDevices()函数,laravel,session,overriding,logout,Laravel,Session,Overriding,Logout,我在重写Laravel中的函数时遇到了一些问题。这是laravel中供应商文件夹(Illumb\Auth\SessionGuard)中的logoutOtherDevices函数。我想在此函数中传递一个$user\u name,以允许某些用户可以多次登录 public function logoutOtherDevices($password, $user_name, $attribute = 'password') { if (! $this->us

我在重写Laravel中的函数时遇到了一些问题。这是laravel中供应商文件夹(Illumb\Auth\SessionGuard)中的logoutOtherDevices函数。我想在此函数中传递一个
$user\u name
,以允许某些用户可以多次登录

public function logoutOtherDevices($password, $user_name, $attribute = 'password')
        {
            if (! $this->user() || $this->user()->user_name == $user_name) {
                return;
            }
    
            $result = tap($this->user()->forceFill([
                $attribute => Hash::make($password),
            ]))->save();
    
            $this->queueRecallerCookie($this->user());
    
            return $result;
        }
但由于这是在供应商文件夹中,所以我不愿意编辑核心文件中的代码。
有人能给我一些指导来覆盖LoginController中的这个函数吗?
因为我计划添加一些条件来结束其他设备上的用户会话。

感谢所有的建议和指导。

SessionGuard是可宏操作的,您可以在运行时向它添加方法,而
LoginController
是您的,因此您可以调整
LoginController
可能调用的内容。也许您可以详细说明这些条件以及您正在尝试执行的操作different@lagbox谢谢你的回复,兄弟,我试图设置一个条件,在该函数中传递$user\u name,以使某些用户允许多次登录。您可以根据需要对该方法的自己版本进行宏处理,然后从LoginController调用您的版本