当用户在 Laravel Auth 中被锁定时发送通知的最佳方式是什么?
What is the best way to send a notification when user is locked out in Laravel Auth?
我想在用户达到允许的最大登录尝试次数时发送电子邮件通知(即用户被锁定)。
最好的方法是什么?
我在 ThrottlesLogins class 中看到一个 fireLockoutEvent 方法,我应该监听那个事件吗?我应该在哪里做?
是的。为事件 LockoutEvent
.
创建监听器
php artisan make:listener LockoutEventListener
LockoutEventListener.php在文件夹app/Listeners/LockoutEventListener
下创建。然后将 LockoutEvent
监听器注册到 app/providers/EventServiceProvider.php
.
中的应用程序
EventServiceProvider.php
protected $listen = [
...
'Illuminate\Auth\Events\Lockout' => [
'App\Listeners\LockoutEventListener',
],
];
然后更新事件的处理方法LockoutEvent
。
LockoutEventListener.php
public function handle($event)
{
if ($event->request->has('email')) {
$user = User::where('email', $event->request->input('email'))->first();
if ($user && !$attemptEmailSent) {
Mail::to($user->email)->send(...);
}
}
}
我想在用户达到允许的最大登录尝试次数时发送电子邮件通知(即用户被锁定)。
最好的方法是什么? 我在 ThrottlesLogins class 中看到一个 fireLockoutEvent 方法,我应该监听那个事件吗?我应该在哪里做?
是的。为事件 LockoutEvent
.
php artisan make:listener LockoutEventListener
LockoutEventListener.php在文件夹app/Listeners/LockoutEventListener
下创建。然后将 LockoutEvent
监听器注册到 app/providers/EventServiceProvider.php
.
EventServiceProvider.php
protected $listen = [
...
'Illuminate\Auth\Events\Lockout' => [
'App\Listeners\LockoutEventListener',
],
];
然后更新事件的处理方法LockoutEvent
。
LockoutEventListener.php
public function handle($event)
{
if ($event->request->has('email')) {
$user = User::where('email', $event->request->input('email'))->first();
if ($user && !$attemptEmailSent) {
Mail::to($user->email)->send(...);
}
}
}