Hallo zusammen,
ich bin gerade dabei Typo3 für einen Kunden anzupassen und hab dafür das Login ein klein wenig verändert so dass es jetzt auch ohne Cookies und mit HTTP_AUTH-Login funktioniert.
Die einzige Datei, die ich verändert habe, ist /t3lib/class.t3lib_userauth.php
Ich poste hier mal alle Änderungen, vielleicht hat ja noch jemand Verbesserungsvorschläge. Erstmal der Original Typo3 Code:
(zeile 164 in 'function start()')
$id = isset($_COOKIE[$this->name]) ? stripslashes($_COOKIE[$this->name]) : '';
Ersetzt duch:
// Do we have any session data?
// first we check for cookies
if( isset($_COOKIE[$this->name]) ) {
$id = stripslashes($_COOKIE[$this->name]);
} // then for sessions
elseif( session_start() ) {
$id = session_id();
} //set to false, if there was no data
else {
$id = '';
}
Typo3 Code:
(~ zeile 300 in 'function check_authentication()')
if ($this->getMethodEnabled) {
$F_status = t3lib_div::_GP($this->formfield_status);
$F_uname = t3lib_div::_GP($this->formfield_uname);
$F_uident = t3lib_div::_GP($this->formfield_uident);
$F_chalvalue = t3lib_div::_GP($this->formfield_chalvalue);
} else {
$F_status = t3lib_div::_POST($this->formfield_status);
$F_uname = t3lib_div::_POST($this->formfield_uname);
$F_uident = t3lib_div::_POST($this->formfield_uident);
$F_chalvalue = t3lib_div::_POST($this->formfield_chalvalue);
}
Hinzugefügt (direkt unten dran):
// do we have an AUTH_USER and the param DoLogin is contained in the URL?
if( !is_null( t3lib_div::_GP('DoLogin')) && isset($_SERVER['PHP_AUTH_USER']) ) {
// set diffrent vars for typo3 to fulfil the login
$F_status = 'login';
$F_uname = $_SERVER['PHP_AUTH_USER'];
$F_uident = $_SERVER['PHP_AUTH_PW'];
$F_chalvalue = '';
}
Mit diesen Änderungen funktioniert das Typo3 FrontEnd sowohl mit als auch ohne Cookies. Allerdings muss man eine PHP-Einstellung überprüfen, session.use_trans_sid = 1, muss gesetzt sein, damit an alle links automatisch die Session_ID angehängt wird.
die URL zum einloggen muss so aussehen:
'index.php?id=1&DoLogin' oder einfach nur
'index.php?DoLogin'
Thats it 🙂
Hat da jemand irgendwelche Verbesserungsvorschläge zu oder gar einen Bug gefunden?
Diese Anpassung habe ich im Rahmen meiner Ausbildung zur Anwendungsentwicklerin bei der 5 Point AG gemacht. Ich hoffe ihr findet's genauso toll wie mein Chef 😉
Viel Spass damit
Desaya