用户验证后如何触发事件?

我想要答案

首先,我没有遵循文档中的所有步骤然后,我深入研究了getVerification处理电子邮件验证请求方法,然后一直到Jrean \ UserVerification \ UserVerification,在那里wasVerified($user)

$user->verification_token = null;

    $user->verified = true;

    $user->verified_at = now();

    $this->updateUser($user);

    event(new UserVerified($user)); 

所以我换掉了文档中的默认事件,该事件是我getVerification在RegisterController的覆盖中调度的

文档中的默认EventServiceProvider

protected $listen = [
    'Illuminate\Auth\Events\Verified' => [ // then replaced event name with 'Jrean\UserVerification\Events\UserVerified'
        'App\Listeners\LogVerifiedUser',
    ],
]; 

我也试着听这两个事件,即在我的RegisterController中触发我的事件

use VerifiesUsers {

  getVerification as parentVerification;
}


public function getVerification(Request $request, $token) {

    $this->parentVerification($request, $token);

    event(new Verified(\Auth::user()));

然后,我进行了dd一些编辑(在侦听器中或在上面的控制器中手动发出事件之前),然后侦听器中的数据库插入无缝运行。

但是,此后没有重定向。我删除了dd,并认为一切都很好,现在的行为变得更加难以理解:“验证”之后,这些列wasVerified()永远不会在该用户的行中更新。一切都停滞不前,但是用户可以执行已验证用户可以访问的所有操作(尽管那些路由已由“已验证”中间件保护,该中间件也已在内核的路由中间件中注册)。同时,没有任何事件触发或听众充耳不闻。

我尝试了模仿事件文档,但是我不知道如何在测试环境中复制用户验证。但是,即使我这样做了,它也只会告诉我事件是否首先被触发,而不能直接解决当前的问题。

最后,我尝试手动调用目标处理程序(无论是否借助事件),但没有任何反应。它只是进入父验证器并重定向到主页。

验证用户后,还有其他方法可以执行所需的操作吗?

我想要答案

该问题与程序包无关。不幸的是,RegisterController受到“来宾”中间件的保护。“来宾”中间件检查您是否已登录,并将您带到“ / home”。同时,在该getVerification方法内,用户在注册后默认登录

    if (config('user-verification.auto-login') === true) {
        auth()->loginUsingId($user->id);
    }

这些文档在听什么事件方面也是错误的。正确的密钥应为“ Jrean \ UserVerification \ Events \ UserVerified”

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

用户失去对a的关注后如何触发事件?

onWheel事件-如何立即触发方法,而不是在用户停止滚动后触发方法

wxpython wx.Slider:仅当用户暂停预定时间后如何触发事件

如何在课堂上触发用户事件?

仅在元素加载后如何触发事件?

加载DFP广告后如何触发事件

悬停3秒后如何触发事件

单击事件后如何触发功能useEffect?

执行快速修复后如何触发验证?

用户单击重试后,每次单击多次触发鼠标事件

事件触发后,我如何触发发布方法?

如何检测事件是由最终用户触发的?(忽略事件触发代码)

仅在触发另一个事件后才如何触发事件功能?

当用户单击EditText时如何触发事件?

如何在用户属性更新时触发事件?

仅当用户更改URL时如何触发事件?

每次用户按下javascript键时如何触发事件

如何捕获用户界面事件触发错误

如何捕获开始拖动,平移或缩放后触发的地图事件?

打开的窗口关闭后如何在React中触发事件

事件发生后如何触发React Hooks

使用JWT成功认证后如何触发事件

在Django中经过30秒后如何触发事件?

剑道comboBox完成过滤后如何触发事件

追加元素后如何触发指令事件?

停止输入/书写后如何触发输入文本中的事件?

更改属性后,如何立即触发属性更改事件?

当iframe完成在jQuery中的加载后,如何触发事件?

如何在一秒后触发 MouseEnter 事件