事件
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();
//
})
事件时间
要了解有关事件时间的更多信息,请参阅以下列表。