laravel - 如何覆盖 laravel 注销核心事件?
问题描述
我正在尝试广播 Illuminate\Auth\Events\Logout。是否可以覆盖或扩展此核心事件以包含 BroadcastOn 方法?
解决方案
您不能覆盖核心注销事件。这个问题有两种方法。无论哪种方式,您都必须触发您的自定义事件。
- 覆盖
loggedOut()
方法AuthenticatesUsers
:
您将必须创建自定义事件并覆盖loggedOut()
方法AuthenticatesUsers
以手动触发它,如下所示:
protected function loggedOut(Request $request)
{
event(new CustomLogoutEvent());
}
这将触发核心事件和您的自定义事件。
- 覆盖
SessionGuard
以覆盖logout()
(冗长且不建议):
logout()
inSessionGuard
是触发核心注销事件的位置。覆盖它以仅触发您的自定义事件。这样只会触发一个注销事件。
以下是如何覆盖警卫:https ://laravel.com/docs/7.x/authentication#adding-custom-guards
推荐阅读
- dll - 尝试在 opencv4 Visual Studio 2019 中使用 gstreamer 时未发现 gstreamer-1.0-0.dll 错误
- python - SMOTE 关于数组问题的数据框
- python - 为什么 __future__.annotations (PEP 563) 没有向后移植到 python3.6?
- random - 如何随机更改圆圈的颜色?
- ruby - Ruby 可重复使用的地图块
- python - 同一网络架构的两种不同风格的 Tensorflow 实现会导致两种不同的结果和行为?
- node.js - 使用 google apis 更改 google 电子表格的访问权限
- puppet - Puppet 模块是否使用互联网安装软件?
- javascript - 过滤对象删除某些属性
- python - 数据帧的使用