Как создать и войти в интерфейс пользователя (feuser) в typo3 вручную / программно? - PullRequest
0 голосов
/ 09 мая 2019

Я хочу создать и войти в систему внешнего пользователя в 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;

expected this : [https://i.stack.imgur.com/lBBkn.png сейчас получают это https://i.stack.imgur.com/fjBlo.png

1 Ответ

0 голосов
/ 09 мая 2019

Этот способ работает для меня в 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();
...