TYPO3 v10.2:自定义身份验证服务中的前端用户会话保存($GLOBALS['TSFE']->fe_user)

TYPO3 v10.2: Frontend user session saving ($GLOBALS['TSFE']->fe_user) in Custom Authentication Service

现在我正在将旧的基于 pi 的扩展从 6.2 升级到 extbase 10.2 扩展。 经过一些研究,我发现前端请求的请求工作流在 TYPO3 10.0 中发生了变化(问题 #88540)。 来自更新日志:

TSFE is instantiated after all site resolving, authentication, page resolving and argument validation is done.

因为我曾经在 $GLOBALS['TSFE']->fe_user$GLOBALS['TSFE']->fe_user->setKey('ses','key', $value) 中存储用户会话,而身份验证过程(自定义 authService)我无法再存储它,因为更改了请求工作流。 $GLOBALS['TSFE']->fe_user 现在在身份验证过程后实例化。似乎必须将保存前端用户会话移到中间件中(在此处找到一些信息:Task #88541)。由于我从未处理过中间件,我现在的问题是如何使用中间件 Class 来保存我的前端用户会话数据?在 Configuration\RequestMiddlewares.php 下,我得到了以下配置:

return [
    'frontend' => [
        'my-middleware-identifier' => [
            'target' => \Vendor\Extension\Middleware\Session::class,
            'after' => [
                'typo3/cms-frontend/prepare-tsfe-rendering'
            ]
        ]
    ]
];

提前致谢!

自 TYPO3 v10.0.0 以来,前端请求的请求工作流程已更改。这就是为什么在身份验证过程中不再可能存储会话数据的原因。请参阅:Changed Request Workflow for Frontend Requests 我为此使用了一个自定义中间件来在创建 $GLOBALS['TSFE']->fe_user 之后存储它。