是否可以从身份验证注销事件中获取用户 ID?



我在Laravel 5.8应用程序中使用侦听器来记录用户操作。

我想为用户登录和注销时创建日志记录。

我的登录功能工作正常:我可以通过auth()->id()检索用户 ID。

我在注销功能中识别注销的用户 ID 时遇到问题。

我有我的订阅者:

$events->listen(
'IlluminateAuthEventsLogout',
'AppListenersUserEventSubscriber@handleUserLogout'
);

我正在尝试查找已注销用户的用户ID...

<?php
namespace AppListeners;
use Log;
use Auth;
use IlluminateAuthEventsLogout;
use IlluminateAuthEventsLogin;
use AppUser;
class UserEventSubscriber
{    
public function handleUserLogout($event) {
return $this->recordCandActivity(array(auth()->id(), 'logged out', 'User logged Out', 'Logout', 'No link'));
}

但是auth()->id()(当然(在注销后呈现为空。

有谁知道从身份验证注销事件中检索刚刚注销的用户 ID 的方法?

提前谢谢。

如果你看一下 Illuminate\Auth\Events\Logout 文件,你可以看到它有两个属性:userguard

可以通过侦听器中的$event参数访问这些属性。

public function handleUserLogout($event) {
return $this->recordCandActivity($event->user->id, 'logged out', 'User logged Out', 'Logout', 'No link'));
}