跳至内容

事件

Shield 在应用程序生命周期中会触发多个事件,您的代码可以利用这些事件。

响应事件

当您想要响应 Shield 发布的事件时,您需要将其添加到您的 app/Config/Events.php 文件中。以下每个事件都提供了一个使用类和方法名称进行响应的示例。其他方法可用。有关更多信息,请参阅 CodeIgniter 4 用户指南

事件列表

register

当新用户在系统中注册时触发。唯一的参数是 User 实体本身。

Events::trigger('register', $user);

Events::on('register', 'SomeLibrary::handleRegister');

login

成功登录后立即触发。唯一的参数是 User 实体。

Events::trigger('login', $user);

Events::on('login', 'SomeLibrary::handleLogin');

failedLogin

登录尝试失败时触发。它提供一个包含用户尝试登录的凭据的数组,其中密码已从数组中删除。

// Original credentials array
$credentials = ['email' => '[email protected]', 'password' => 'secret123'];

Events::on('failedLogin', function($credentials) {
    dd($credentials);
});

// Outputs: ['email' => '[email protected]'];

当魔术链接登录失败时,将提供以下数组

['magicLinkToken' => 'the token value used']

logout

成功注销后立即触发。唯一的参数是 User 实体。

magicLogin

用户通过魔术链接成功登录时触发。此事件没有任何传入的参数。可以通过 auth() 助手发现经过身份验证的用户。

Events::on('magicLogin', function() {
    $user = auth()->user();

    //
})

事件时间

要了解有关事件时间的更多信息,请参阅以下列表。