0

我想在typo3中创建并登录一个前端用户,我应该能够看到用户以登录表单登录。仅供参考,用户被添加到fe_user数据库中的表中,但没有登录。

$GLOBALS['TSFE']->fe_user->forceSetCookie = TRUE;
                    $GLOBALS['TSFE']->fe_user->start();
                    $GLOBALS['TSFE']->fe_user->createUserSession($user);
                    $GLOBALS['TSFE']->fe_user->user = $user;
                    $GLOBALS['TSFE']->fe_user->setKey('user', 'fe_typo_user', $user);
                    $GLOBALS['TSFE']->fe_user->user = $GLOBALS['TSFE']->fe_user->fetchUserSession();
                    $GLOBALS['TSFE']->fe_user->setAndSaveSessionData('user', TRUE);
                    $this->ses_id = $GLOBALS['TSFE']->fe_user->fetchUserSession();
                    $reflection = new \ReflectionClass($GLOBALS['TSFE']->fe_user);
                    $setSessionCookieMethod = $reflection->getMethod('setSessionCookie');
                    $setSessionCookieMethod->setAccessible(TRUE);
                    $setSessionCookieMethod->invoke($GLOBALS['TSFE']->fe_user);
                    $GLOBALS['TYPO3_CONF_VARS']['SVCONF']['auth']['setup']['FE_alwaysFetchUser'] = true;
                    $GLOBALS['TYPO3_CONF_VARS']['SVCONF']['auth']['setup']['FE_alwaysAuthUser'] = true;
                    $GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['felogin']['login_confirmed'] = true;
                    $GLOBALS['TSFE']->fe_user->storeSessionData();
                    $GLOBALS['TSFE']->fe_user->loginUser = 1;

预计会这样:[https://i.stack.imgur.com/lBBkn.png 现在得到这个https://i.stack.imgur.com/fjBlo.png

4

1 回答 1

0

这种方式在 7.6-9.5 中适用于我:

$GLOBALS['TSFE']->fe_user->checkPid = 0;
$GLOBALS['TSFE']->fe_user->dontSetCookie = FALSE;
$GLOBALS['TSFE']->fe_user->user = $GLOBALS['TSFE']->fe_user->fetchUserSession();
$GLOBALS['TSFE']->loginUser = 1;
$GLOBALS['TSFE']->fe_user->start();
$GLOBALS['TSFE']->fe_user->createUserSession(['uid' => $userUid]);
$GLOBALS['TSFE']->initUserGroups();
$GLOBALS['TSFE']->fe_user->loginSessionStarted = TRUE;
$GLOBALS['TSFE']->storeSessionData();
于 2019-05-09T08:30:53.313 回答