Skip to content


Shield fires off several events during the lifecycle of the application that your code can tap into.

Responding to Events

When you want to respond to an event that Shield publishes, you will need to add it to your app/Config/Events.php file. Each of the following events provides a sample for responding that uses a class and method name. Other methods are available. See the CodeIgniter 4 User Guide for more information.

Event List


Triggered when a new user has registered in the system. The only argument is the User entity itself.

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

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


Fired immediately after a successful login. The only argument is the User entity.

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

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


Triggered when a login attempt fails. It provides an array containing the credentials the user attempted to sign in with, with the password removed from the array.

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

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

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

When the magic link login fails, the following array will be provided:

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


Fired immediately after a successful logout. The only argument is the User entity.


Fired when a user has been successfully logged in via a magic link. This event does not have any parameters passed in. The authenticated user can be discovered through the auth() helper.

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


Event Timing

To learn more about Event timing, please see the list below.