BeforeRequestTokenProcessedEvent

New in version 12.1

The event \TYPO3\CMS\Core\Authentication\Event\BeforeRequestTokenProcessedEvent allows to intercept or adjust a request token during active user authentication process.

Example

The event can be used to generate the request token individually. This can be the case when you are not using a login callback and have not the possibility to submit a request token:

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

EXT:my_extension/Configuration/Services.yaml
services:
  # Place here the default dependency injection configuration

  MyVendor\MyExtension\Authentication\EventListener\MyEventListener:
    tags:
      - name: event.listener
        identifier: 'my-extension/process-request-token-listener'
Copied!

Read how to configure dependency injection in extensions.

An implementation of the event listener:

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

declare(strict_types=1);

namespace MyVendor\MyExtension\Authentication\EventListener;

use TYPO3\CMS\Core\Authentication\Event\BeforeRequestTokenProcessedEvent;
use TYPO3\CMS\Core\Security\RequestToken;

final class MyEventListener
{
    public function __invoke(BeforeRequestTokenProcessedEvent $event): void
    {
        $user = $event->getUser();
        $requestToken = $event->getRequestToken();
        // fine, there is a valid request token
        if ($requestToken instanceof RequestToken) {
            return;
        }

        // Validate individual requirements/checks
        // ...
        $event->setRequestToken(
            RequestToken::create('core/user-auth/' . strtolower($user->loginType)),
        );
    }
}
Copied!

API

class \TYPO3\CMS\Core\Authentication\Event\ BeforeRequestTokenProcessedEvent

Event fired before request-token is processed.

getUser ( )
returntype

TYPO3\CMS\Core\Authentication\AbstractUserAuthentication

getRequest ( )
returntype

Psr\Http\Message\ServerRequestInterface

getRequestToken ( )
returntype

TYPO3\CMS\Core\Security\RequestToken|false|null

setRequestToken ( TYPO3\\CMS\\Core\\Security\\RequestToken|false|null $requestToken)
param TYPO3\\CMS\\Core\\Security\\RequestToken|false|null $requestToken

the requestToken