Zum Inhalt springen

Usersessions in eigener Extension

Erstellt am 2. August 2011 · 1 Antwort · letzte Antwort am 2. August 2011

Tags: Frage

noze ·

Hallo,

für meine Extension benötige ich ein eigenes Login unabhängig von der Typo3 DB. Ich habe mir einige Extensions angeschaut und gesehen das man dennoch Daten des Users in der DB speichern muss. Dies tue ich auch. Es klappt soweit alles, aber scheinbar werden die Sessions dennoch nicht richtig erzeugt.

Meine Frage:

wie Frage ich eine existierende Session / Login in PHP ab? Wie ist der gängige Weg um User zu authentifizieren?

Ich habe folgende Sachen versucht:

$fe_user = $GLOBALS['TSFE']->fe_user; /* @var $fe_user tslib_feUserAuth */
unset($fe_user->user);
$fe_user->createUserSession($aUser);
$fe_user->loginSessionStarted = TRUE;
$fe_user->user = $fe_user->fetchUserSession();
$fe_user->fetchGroupData(); 
$GLOBALS["TSFE"]->loginUser = 1;

oder

$GLOBALS['TSFE']->fe_user->checkPid=$aUser['pid'];
$info= $GLOBALS['TSFE']->fe_user->getAuthInfoArray();
$user=$GLOBALS['TSFE']->fe_user->fetchUserRecord($info['db_user'],$aUser['username']);
$ok=$GLOBALS['TSFE']->fe_user->compareUident($user,$aUser);
if($ok) { //login successfull
$GLOBALS['TSFE']->fe_user->createUserSession($user);
$GLOBALS['TSFE']->fe_user->user = $GLOBALS['TSFE']->fe_user->fetchUserSession();
$GLOBALS['TSFE']->fe_user->fetchGroupData(); 
$GLOBALS["TSFE"]->loginUser = 1;
} else {
//login failed
}

Er schreibt bei beiden Wegen etwas in die Tabelle "fe_sessions", dennoch kann ich die Session nicht wieder laden oder ich weiss nicht wie. Die Extension felogin macht dieses:

$this->userIsLoggedIn = $GLOBALS['TSFE']->loginUser;

aber das gibt bei mir immer 0 zurück.

Kann mir jemand sagen wie man eine gültige Session erzeugt und wie man diese dann wieder abfragt?

Vielen Dank!