Hi,
bis einschließlich TYPO3 4.7 habe ich es so gehandhabt, dass sich Benutzer im BE sowohl mit ihrem Benutzernamen als auch - sofern im BE eingetragen - mit ihrer hinterlegten E-Mail-Adresse einloggen können.
Dazu musste die function fetchUserRecord der Klasse t3lib_userauth.php nur so erweitert werden, dass sie nicht nur Benutzer aus der Datenbank anhand des Benutzernamens sondern auch anhand der E-Mail-Adresse ausgibt.
Zum eigentlichen Problem. Mit 6.0 wurde die Funktion in die Core-Extension verschoben. Wenn ich in der fetchUserRecord von 6.0 (die nun unter sysext/core/Classes/Authentication/AbstractUserAuthentication.php liegt) dieselben Änderungen wie in 4.7 durchführe, funkt mir noch irgendetwas dazwischen.
Überschreibe ich Testweise mit:
$usernameClause = $username ? $dbUser['username_column'] . '=' . $GLOBALS['TYPO3_DB']->fullQuoteStr($username, $dbUser['table']) : '1=1';
innerhalb der fetchUserRecord, wird in 6.0 zwar der Benutzer korrekt ausgegeben, die Funktion arbeitet wie in 4.7, allerdings schreibt TYPO3 in den Log, dass das Passwort zurückgewiesen wurde. Die Funktion gibt allerdings den korrekten Benutzer und sein Passwort aus der Datenbank aus.
Ich konnte bisher nicht herausfinden, welche Funktion(en) in 6.0 verhindert, dass durch dieselbe Änderung wie in 4.7 es auch möglich ist, sich via E-Mail anzumelden.
Ist etwas anspruchsvoll, hoffe es weiß dennoch jemand Rat.