Zum Inhalt springen

Wie kann man einen FE-User einloggen per PHP-Skript?

Erstellt am 4. Juni 2007 · 11 Antworten · letzte Antwort am 21. Dezember 2007

Tags: Frontend-Benutzer, Frage

webzigartig ·

Hallo NickD, vielen Dank für Deinen Tipp. Ich habe die Klasse heute zum zweiten mal angeschaut. Ich verstehe das Login-Prozedere von Typo3 trotzdem noch nicht: welche Funktion loggt den User denn ein? Oder bedeutet "einloggen" das man eine neue UserSession erzeugt?
Habe ein wenig mit den Funktionen rumexperiment, aber leider erfolglos...

Bitbull ·

Hi Steffen,

nur der Vollständigkeit halber (und weil es mich zugegebenerweise gerade beschäftigt): Wie kann ich einen User per Code ausloggen?

Danke

Bitbull

Mr.​TRTD ·

Moin Leute,

das script hört sich auch für meine Belange nicht schlecht an, aber mir wird nicht klar, wo ich das einzubauen habe.

Wo also gehört:

http://www.sk-typo3.de/FE-Userlogin-per-Code.191.0.html

$loginData=array(
    'uname' => 'johndoe', //usernmae
    'uident'=> 'mypassword', //password
    'status' =>'login'
);
$GLOBALS['TSFE']->fe_user->checkPid=0; //do not use a particular pid
$info= $GLOBALS['TSFE']->fe_user->getAuthInfoArray();
$user=$GLOBALS['TSFE']->fe_user->fetchUserRecord(
   $info['db_user'],$loginData['uname']);
$ok=$GLOBALS['TSFE']->fe_user->compareUident($user,$loginData);
if($ok) {
  //login successfull
  $GLOBALS['TSFE']->fe_user->createUserSession($user);
} else {
  //login failed
}

hin? In welche Datei?

Danke

Mr.​TRTD ·

Ich habs jetzte geschafft.

Allerdings ohne Extension:

Lösungsweg:
Man integriere in das setup des Templates (nicht innerhalb von "page")

includeLibs.DEINE_LIB = fileadmin/libs/user_DEINE_LIB.php

Nun bindet man die Klassen und die zu nutzende Funktion ein

page.5 = USER_INT
page.5.userFunc = user_DEINE_CLASS->user_DEINE_FUNKTION

Wichtig dabei ist anscheinend:
1. Die Klasse und die Funktionen müssen mir "user_" anfangen
2. USER_INT wird nicht gecached und wird somit immer wieder von neuem aufegrufen

Trotzdem meine Frage an die Spezies.
Ist das so der korrekte Weg?