TYPO3 v10 - Получение объекта feUser с использованием контекстного API в eID_include
Код, который я использовал и который нужно обновить для V10
$this->feUser = EidUtility::initFeUser();
При использовании следующего кода (случайного) контроллера контекст дает мне правильный объект входа feUser.
$context = GeneralUtility::makeInstance(Context::class);
$user = $context->getAspect('frontend.user');
DebuggerUtility::var_dump($user);
При использовании того же кода в eID_include
class Не указан объект userObject.
Конкретно в следующем классе
$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['FileDumpEID.php']['checkFileAccess']['xxx'] = My\Class\Hooks\FileDumpHook:class
Нужен ли контекст начальной загрузки?
2 ответа
У меня такая же проблема. Вы можете изменить порядок промежуточного ПО: https://docs.typo3.org/m/typo3/reference-coreapi/master/en-us/ApiOverview/RequestHandling/Index.html
Я создал новый файл RequestMiddlewares.php внутри каталога "Configuration" моего расширения:
<?php
return [
'frontend' => [
'typo3/cms-frontend/eid' => [
'disabled' => true
],
'typo3/cms-frontend/eid-new' => [
'target' => \TYPO3\CMS\Frontend\Middleware\EidHandler::class,
'after' => [
'typo3/cms-frontend/tsfe',
],
'before' => [
'typo3/cms-frontend/prepare-tsfe-rendering',
]
]
]
];
Вы должны очистить TYPO3 и PHP Cache и проверить порядок в бэкэнд-модуле "Конфигурация" (выберите "HTTP Middlewares (PSR-15)").
При такой настройке можно получить свойство контекста frontent.user.
$context = GeneralUtility::makeInstance(Context::class);
if($context->getPropertyFromAspect('frontend.user', 'isLoggedIn')) {
Поскольку промежуточное ПО TYPO3\CMS\Frontend\Middleware\EidHandler выполняется до промежуточного ПО TYPO3\CMS\Frontend\Middleware\FrontendUserAuthenticator в порядке промежуточного программного обеспечения, я не думаю, что это возможно.
Если вам нужны части обработки внешнего интерфейса, вы можете добавить собственное промежуточное ПО с зависимостью от TYPO3\CMS\Frontend\Middleware\FrontendUserAuthenticator или использовать объект страницы в типографском сценарии.