2017-02-28 1 views
0

In meiner Extbase Erweiterung, schrieb ich meinen eigenen Login-Mechanismus, der eine manuelle Anmeldung als fe_user wie dies löst:TYPO3: Redirect Benutzer auf geschützte Seite nach programmatischer Anmeldung von fe_user

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

$GLOBALS['TSFE']->fe_user->createUserSession($user); 
$GLOBALS['TSFE']->fe_user->setAndSaveSessionData('dummy', TRUE); 
$GLOBALS['TSFE']->loginUser = 1; 

this->redirect(null, null, null, null, 38); 

Danach leite ich den Benutzer auf eine Seite (ID 38), deren Zugriffsrechte für Benutzergruppen so festgelegt sind, dass nur dieser fe_user auf die Seite zugreifen kann.

Die Anmeldung funktioniert und nach der Anmeldung kann ich die geschützte Seite im Menü sehen und kann darauf zugreifen. Die Umleitung auf die geschützte Seite funktioniert jedoch nicht. Ich lande auf der Startseite. Es scheint, dass die Anmeldung zum Zeitpunkt der Weiterleitung nicht vollständig aktiv ist, sondern erst nachdem die Seite einmal vollständig geladen wurde.

Haben Sie eine Idee, wie Sie das Login vor der Weiterleitung vollständig anwenden?

+0

Gibt es einen bestimmten Grund, warum Sie sich für sie einen Authentifizierungsdienst nicht verwenden (was tun sollte, was Sie richtig wollen)? – lorenz

+0

Nein, mir sind keine TYPO3-internen Authentifizierungsdienste für die fe_user-Anmeldung bekannt. Hast du ein Beispiel? – Rob

Antwort

0

Mein Vorschlag: Erstellen Sie die URI auf die Aktion mit dem UriBuilder und verwenden Sie die AbstractController-> redirectToUri Funktion. Dann sollte die Anmeldung abgeschlossen sein, bevor die neue Seite angefordert wird.

1

zu Umleitung zwingt eingeschränkte Seiten zuzugreifen:

$uri = $this->uriBuilder->reset() 
       ->setTargetPageUid($yourTargetUid) 
       ->setCreateAbsoluteUri(true) 
       ->setLinkAccessRestrictedPages(true) 
       ->buildFrontendUri(); 
Verwandte Themen