LoginAttemptFailedEvent

New in version 12.3: The event replaces the deprecated hook $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['t3lib/class.t3lib_userauth.php']['postLoginFailureProcessing'] .

The purpose of the PSR-14 event \TYPO3\CMS\Core\Authentication\Event\LoginAttemptFailedEvent is to allow to notify remote systems about failed logins.

Example

Registration of the event listener in the extension's Services.yaml:

EXT:my_extension/Configuration/Services.yaml
MyVendor\MyExtension\Authentication\EventListener\MyEventListener:
  tags:
    - name: event.listener
      identifier: 'my-extension/login-attempt-failed'

An implementation of the event listener:

EXT:my_extension/Authentication/EventListener/MyEventListener.php
<?php

declare(strict_types=1);

namespace MyVendor\MyExtension\Authentication\EventListener;

use TYPO3\CMS\Core\Authentication\Event\LoginAttemptFailedEvent;

final class MyEventListener
{
    public function __invoke(LoginAttemptFailedEvent $event): void
    {
        $normalizedParams = $event->getRequest()->getAttribute('normalizedParams');
        if ($normalizedParams->getRemoteAddress() !== '198.51.100.42') {
            // send an email because an external user attempt failed
        }
    }
}

API

class TYPO3\CMS\Core\Authentication\Event\LoginAttemptFailedEvent

Event fired after a login attempt failed.

isFrontendAttempt()
Return type

bool

isBackendAttempt()
Return type

bool

getUser()
Return type

TYPO3\CMS\Core\Authentication\AbstractUserAuthentication

getRequest()
Return type

Psr\Http\Message\ServerRequestInterface

getLoginData()
Return type

array