Typo3 7: manual FE-Login won't work


August 22, 2016 at 12:31
Typo3

In a typo3 7.6.10 installation I had to login a frontend user via ajax. This wouldn't work and when I took a closer look at $GLOBALS['TSFE'] I noticed that fe_user->user was set, but $GLOBALS['TSFE']->loginUser would always be reset to false after a page reload. Eventually I inspected the typo3 source and found the problem in initUserGroups in sysext/frontend/Classes/Controller/TypoScriptFrontendController.php : the user I tried to login did not have a group assigned (meaning the column "usergroup" in fe_users was empty). As soon as I entered a valid fe_groups ID there, the manual login worked as following:
$loginData = array(
    'username' => $username,
    'uident_text' => $password,
    'status' => 'login',
);

$GLOBALS['TSFE']->fe_user->checkPid = 0;
$info = $GLOBALS['TSFE']->fe_user->getAuthInfoArray();
$user = $GLOBALS['TSFE']->fe_user->fetchUserRecord($info['db_user'], $loginData['username']);

//check password etc. 
if ($this->loginSuccessful($user, $password)) {

    $tsfe = $GLOBALS['TSFE'];
    $tsfe->fe_user->createUserSession($user);
    $tsfe->fe_user->setAndSaveSessionData('dummy', TRUE);
    $tsfe->loginUser = 1;
    return json_encode(['status' => 'success']);
}

Tags: ajax fe_login typo3 7


Hinterlasse einen Kommentar:
Salieri
13.03.2017
"manuell" und "ohne Cookies" sind zwei verschiedene Dinge. Es geht nur darum, die fe_user Standardfunktionalität zu umgehen.

Gökce
14.02.2017
Hallo, ich brauche genau diesen Code für meine Typo3 Instanz (7.6.10). Nun will ich einen User manuell einloggen lassen (ohne Cookies). Was muss ich ganz genau tun? Wo schreibe ich diesen PHP Code und wie binde ich ihn ein? Muss ich dafür mein eigenes Login Formular erstellen? Und beim Submit Button deinen PHP Code aufrufen? Wie ich sehe, verzichtet man auf Felogin Extension , bei deiner Lösung. Wenn du sie etwas näher erläutern könntest, wäre ich dir tausendfach dankbar. (das Problem kümmert mich schon seit Tagen) Auf eine detaillierte Anleitung würde ich mich freuen. Gruß Gökce

Search