FrontendUserAuthentication

\nn\t3::FrontendUserAuthentication()

Frontend-User Methoden: Von Einloggen bis Passwort-Änderung

Overview of Methods

\nn\t3::FrontendUserAuthentication()->login($username = '', $password = '', $startFeUserSession = true);

Login eines FE-Users anhand der Usernamens und Passwortes

// Credentials überprüfen und feUser-Session starten
\nn\t3::FrontendUserAuthentication()->login( '99grad', 'password' );

// Nur überprüfen, keine feUser-Session aufbauen
\nn\t3::FrontendUserAuthentication()->login( '99grad', 'password', false );
@return array

\nn\t3::FrontendUserAuthentication()->loginBySessionId($sessionId = '');

Login eines FE-Users anhand einer Session-ID.

Die Session-ID entspricht dem TYPO3 Cookie fe_typo_user. In der Regel gibt es für jede Fe-User-Session einen Eintrag in der Tabelle fe_sessions. Bis zu Typo3 v10 entsprach die Spalte ses_id exakt dem Cookie-Wert.

Ab Typo3 v10 wird der Wert zusätzlich gehashed.

Siehe auch \nn\t3::Encrypt()->hashSessionId( $sessionId );

\nn\t3::FrontendUserAuthentication()->loginBySessionId( $sessionId );
@return array

\nn\t3::FrontendUserAuthentication()->loginByUsername($username = '');

Login eines FE-Users anhand der Usernamens

\nn\t3::FrontendUserAuthentication()->loginByUsername( '99grad' );
@return array

\nn\t3::FrontendUserAuthentication()->loginField($value = NULL, $fieldName = 'uid');

Login eines FE-Users anhand eines beliebigen Feldes. Kein Passwort erforderlich.

\nn\t3::FrontendUserAuthentication()->loginField( $value, $fieldName );
@return array

\nn\t3::FrontendUserAuthentication()->loginUid($uid = NULL);

Login eines FE-Users anhand einer fe_user.uid

\nn\t3::FrontendUserAuthentication()->loginUid( 1 );
@return array

\nn\t3::FrontendUserAuthentication()->prepareSession($usernameOrUid = NULL, $unhashedSessionId = NULL);

Eine neue FrontenUser-Session in der Tabelle fe_sessions anlegen. Es kann wahlweise die fe_users.uid oder der fe_users.username übergeben werden.

Der User wird dabei nicht automatisch eingeloggt. Stattdessen wird nur eine gültige Session in der Datenbank angelegt und vorbereitet, die Typo3 später zur Authentifizierung verwenden kann.

Gibt die Session-ID zurück.

Die Session-ID entspricht hierbei exakt dem Wert im fe_typo_user-Cookie - aber nicht zwingend dem Wert, der in fe_sessions.ses_id gespeichert wird. Der Wert in der Datenbank wird ab TYPO3 v11 gehashed.

$sessionId = \nn\t3::FrontendUserAuthentication()->prepareSession( 1 );
$sessionId = \nn\t3::FrontendUserAuthentication()->prepareSession( 'david' );

$hashInDatabase = \nn\t3::Encrypt()->hashSessionId( $sessionId );

Falls die Session mit einer existierenden SessionId erneut aufgebaut werden soll, kann als optionaler, zweiter Parameter eine (nicht-gehashte) SessionId übergeben werden:

\nn\t3::FrontendUserAuthentication()->prepareSession( 1, 'meincookiewert' );
\nn\t3::FrontendUserAuthentication()->prepareSession( 1, $_COOKIE['fe_typo_user'] );
@return string

\nn\t3::FrontendUserAuthentication()->setPassword($feUserUid = NULL, $password = NULL);

Passwort eines FE-Users ändern.

\nn\t3::FrontendUserAuthentication()->setPassword( 12, '123Passwort#$' );
\nn\t3::FrontendUserAuthentication()->setPassword( $frontendUserModel, '123Passwort#$' );
@return boolean