TYPO3 12 自定义注册后自动登录问题及解决方案
TYPO3 12 注册后自动登录失效及认证服务未触发问题
我开发了自定义TYPO3扩展用于用户注册,希望注册成功后自动登录用户,但之前的脚本在TYPO3 12环境下失效了:
$userToLogin = 42; // 注册后的用户ID $feUser = $GLOBALS['TSFE']->fe_user; unset($feUser->user); $feUser->createUserSession($userToLogin); $feUser->loginSessionStarted = TRUE; $feUser->user = $feUser->fetchUserSession(); $GLOBALS['TSFE']->loginUser = 1;
我已经实现了认证服务,但注册后并未自动触发:
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addService( 'bo_xyz', 'auth', \VENDOR\Extension\Service\MyAuthService::class, array( 'title' => 'My Authentication', 'description' => '', 'subtype' => 'authUserFE', 'available' => true, 'priority' => 60, 'quality' => 50, 'os' => '', 'exec' => '', 'className' => \VENDOR\Extension\Service\MyAuthService::class ) );
MyAuthService类中的authUser()方法没有被调用,我已经通过POST传递了logintype=login参数。请问如何触发该服务?有没有基于用户UID实现自动登录的方案?
解决方案
经过测试研究,找到以下可行方案:
$feUser = $GLOBALS['TSFE']->fe_user; unset($feUser->user); $sessionResult = $feUser->createUserSession(['uid' => 42]); $feUser->loginSessionStarted = TRUE; $GLOBALS['TSFE']->loginUser = 1; setcookie("fe_typo_user", $sessionResult->getJwt(), 0, '/');
内容的提问来源于stack exchange,提问作者lets-get-nerdy
相关产品推荐
相关产品推荐

