Front-end user methods: from logging in to password change

Overview of Methods

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

Login of a FE user based on username and password

// Check credentials and start feUser session.
\nn\t3::FrontendUserAuthentication()->login( '99grad', 'password' );

// Check only, do not start feUser session
\nn\t3::FrontendUserAuthentication()->login( '99grad', 'password', false );
@return array

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

Login of a FE user using a session ID.

The session ID corresponds to the TYPO3 cookie fe_typo_user. Usually there is one entry for each each fe-user session there is an entry in the fe_sessions table. Up to Typo3 v10, the the ses_id column corresponded exactly to the cookie value.

As of Typo3 v10, the value is hashed additionally.

See also \nn\t3::Encrypt()->hashSessionId( $sessionId );

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

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

Login of a FE user based on the username

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

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

Login a FE user using any field. No password required.

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

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

Login of a FE user using a fe_user.uid

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

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

Create a new FrontenUser session in the fe_sessions table. You can either specify the fe_users.uid or the fe_users.username

The user will not be logged in automatically. Instead, only a valid session is created and prepared in the database. is created and prepared in the database, which Typo3 can use later for authentication.

Returns the session ID.

The session ID here corresponds exactly to the value in the fe_typo_user cookie - but not necessarily to the value stored in fe_sessions.ses_id. The value in the database is hashed as of TYPO3 v11. hashed.

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

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

If the session is to be rebuilt with an existing SessionId, an optional, (non-hashed) SessionId can be passed as an optional second parameter:

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

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

Change the password of a FE user

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