AfterUserLoggedInEvent¶
New in version 12.3: The event replaces the deprecated hook
$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['t3lib/class.t3lib_userauthgroup.php']['backendUserLogin']
.
New in version 13.0: The event is also dispatched, when a successful frontend user login is performed.
The purpose of the PSR-14 event
\TYPO3\CMS\Core\Authentication\Event\AfterUserLoggedInEvent
is to trigger any kind of action when a backend or frontend user has been
successfully logged in.
The TYPO3 Core itself uses this event in the TYPO3 backend to send an email to a user, if the user has successfully logged in. See EXT:backend/Classes/Security/EmailLoginNotification.php.
Example¶
<?php
declare(strict_types=1);
namespace MyVendor\MyExtension\Authentication\EventListener;
use TYPO3\CMS\Core\Attribute\AsEventListener;
use TYPO3\CMS\Core\Authentication\BackendUserAuthentication;
use TYPO3\CMS\Core\Authentication\Event\AfterUserLoggedInEvent;
#[AsEventListener(
identifier: 'my-extension/after-user-logged-in'
)]
final class MyEventListener
{
public function __invoke(AfterUserLoggedInEvent $event): void
{
if (
$event->getUser() instanceof BackendUserAuthentication
&& $event->getUser()->isAdmin()
) {
// Do something like: Clear all caches after login
}
}
}
New in version 13.0: The PHP attribute \TYPO3\CMS\Core\Attribute\AsEventListener
has been
introduced to tag a PHP class as an event listener. Alternatively, or if you
need to be compatible with older TYPO3 versions, you can also register an
event listener via the Configuration/Services.yaml
file. Switch to
an older version of this page for an example or have a look at the section
Implementing an event listener in your extension.
API¶
- class TYPO3\CMS\Core\Authentication\Event\AfterUserLoggedInEvent¶
Event fired after a user has been actively logged in (incl. possible MFA).
Currently only working in BE context, but might get opened up in FE context as well in TYPO3 v13+.
- getUser()¶
- Return type
TYPO3\CMS\Core\Authentication\AbstractUserAuthentication
- getRequest()¶
- Return type
Psr\Http\Message\ServerRequestInterface