Wie mir scheint, ist die Alpha 0.1.1 von phpbb3_auth nicht kompatibel zum Stable Release des PHPBB3. Ich habe letzteres in der Version 3.0.1. Der Hash Algorithmus, den PHPBB3 verwendet, um das Benutzerpasswort zu speichern, ist nicht mehr einfach md5($password). Die basteln da mit Salts rum und so... Verwendet man die Funktion _hash_crypt_private aus dem phpbb3 zum prüfen des Passworts, dann funktioniert zumindest die Authentifizierung des Benutzers.
Das Erstellen der Session scheint aber trotzdem nicht zu funktionieren. Ich werde zwar kurz im über ein IFrame eingebauten Forum angemeldet, beim nächsten Neuladen der ganzen Seite bin ich aber wieder draußen. Die Loginbox von TYPO3 reagiert auch nicht auf den Login.
Im DevLog steht drin, daß die Session nach dem Einloggen gleich wieder ausgeloggt wird:
56947 phpbb3auth OK: 200
56948 t3lib_userAuth authUserFE auth services called: ,tx_phpbb3auth_sv1
56949 t3lib_userAuth Create session ses_id = xxxxxxxxxx
56950 t3lib_userAuth User xxx logged in from xxx.xxx.xxx.xxx ()
56951 t3lib_userAuth Fetch session ses_id = xxxxxxxxxx
56952 t3lib_userAuth logoff: ses_id = xxxxxxxxxx
56953 t3lib_userAuth No user session found.
OK: 200 ist der Rückgabewert der Funktion authUser. Kann dazu jemand sagen, woran das liegt, daß die Session gleich wieder ausgeloggt wird (logoff: ses_id ...)?
Informell noch: durch die Verwendung des PHPBB3 Hash Algorithmus stimmt das Passwort, welches im Passwort-Feld eingegeben wird, nicht mit dem überein, welches in der fe_users Tabelle steht. Eventuell ist das das Problem? Wie umgeht man das?
Für die Authentifizierung muss ich $this->login['uident'] ja erst über _hash_crypt_private so hinrechnen, daß es einem PHPBB3 Hash entspricht. Ich vermute daher folgendes: Kann es sein, daß in der Session das eingegebene Passwort im Klartext hinterlegt wird? Kann es daher sein, daß bei einer weitern Authentifizierung - wo auch immer - dieses Passwort mit dem in der fe_users Tabelle verglichen wird, wonach festgestellt wird, daß diese natürlich nicht übereinstimmen (Klartext vs. Hash)? Kann das die Ursache sein? Wenn ja, wie löst man das? Ich würde dann ja das gehashte Passwort in die Session schreiben, statt des Klartext-Passworts. Aber wo? Wie?
Danke