Loginbox per TypoScript (mit kb_md5feuser und newloginbox)

Submitting your vote...
Rating: 3.8 of 5. 11 vote(s).
Click the rating bar to rate this item.

Dieses Beispiel demonstriert die Möglichkeit der Erstellung einer Loginbox per TypoScript. Diese Loginbox funktioniert mit md5 Passwörtern (ext: kb_md5feuser) und der Extension newloginbox.

 

# prüfe, ob bereits eingeloggt (ein feuser muß zu einer Gruppe gehören)
[usergroup=*]

# Abmeldeformular mit Benutzernamen
lib.login = COA_INT
lib.login {
  10 = TEXT
  10.wrap = <span id="logoutUName">|</span>
   
  20 = TEXT
  20.typolink.parameter = {$plugin.tx_newloginbox.loginUID}
  20.typolink.returnLast = url
  20.wrap = <form action="|" method="post">
   
  30 = COA
  30 {
    5 = TEXT
    5.wrap = <input type="submit" id="logout" value="|" />
     
    10 = TEXT
    10.value = <input type="hidden" name="logintype" value="logout" />
    20 = TEXT
    20.value = <input type="hidden" name="redirect_url" value="" />
    30 = TEXT
    30.value = </form>
  }
}

# ansonsten stellen wir ein Anmeldeformular zur Verfügung
[else]

# wichtig, da wir an den Challenge-Wert von kb_md5feuser nur über ein PHP-Script kommen
includeLibs.md5fepw = fileadmin/scripts/md5fepw.php
lib.login = COA_INT
lib.login {
  10 = TEXT
  10.typolink.parameter = {$plugin.tx_newloginbox.loginUID}
  10.typolink.returnLast = url
  10.wrap = <form action="|" method="post" onsubmit="superchallenge_pass(this); return true;">
   
  # form
  20 = COA
  20 {
    10 = TEXT
    10.value = Login
    10.wrap = <input type="text" name="user" onclick="this.value=''" value="|" /> <br />
    20 = TEXT
    20.wrap = <input type="password" name="pass" onclick="this.value=''" value="|" />
     
    30 = COA
    30 {
      10 = TEXT
      10.value = <input type="hidden" name="logintype" value="login" />
      20 = TEXT
      20.value = {$plugin.tx_newloginbox.storageUID}
      20.wrap = <input type="hidden" name="pid" value="|" />
       
      # Aufruf des PHP-Scriptes
      25 = USER
      25.userFunc = user_md5fepw->md5Challenge
       
      30 = TEXT
      30.value = <button type="submit"><img src="fileadmin/templates/res/pictures/go.gif" alt="login" /></button>
      40 = TEXT
      40.value = </form>
    }
  }
}
[usergroup]

# Inhalte für Abmeldeformular nach Sprache einbinden (in unserem Beispiel Englisch und Deutsch)
[usergroup=*] AND [globalVar = GP:L = {$langUID_EN}]
lib.login.10.value = Hello <!--###USERNAME###-->
lib.login.30.5.value = press to logout
[else]
lib.login.10.value = Hallo <!--###USERNAME###-->
lib.login.30.5.value = zum abmelden best&auml;tigen
[global]

# ermöglicht einbinden nur auf spezieller Seite und dessen Unterseiten
[PIDinRootline={$siteIntern}]
lib.login.if.isTrue = 1

# globale Ermöglichung des Login, falls Konstante auf 1 gesetzt wird
[else]
lib.login.if.isTrue = {$activateLogin}
[global]

 

Hier das benötigte PHP-Script. Inhalt des PHP-Scriptes (Funktion kopiert von kb_md5feuser und leicht modifiziert)

 


<?php
class user_md5fepw {
function 
md5Challenge($content$conf)
{
$js '
function superchallenge_pass(form) {
var pass = form.pass.value;
if (pass) {
form.pass.value = MD5(form.user.value + ":" + MD5(pass) + ":" + form.challenge.value);
return true;
} else
return false;
}'
;

$GLOBALS['TSFE']->JSCode .= $js;
$GLOBALS['TSFE']->additionalHeaderData['tx_kbmd5fepw_newloginbox'] = '<script language="JavaScript" type="text/javascript" src="typo3/md5.js"></script>';
$chal_val md5(time().getmypid());
$res $GLOBALS['TYPO3_DB']->exec_INSERTquery('tx_kbmd5fepw_challenge', array('challenge' => $chal_val'tstamp' => time()));
return 
'<input type="hidden" name="challenge" value="'.$chal_val.'">';
}
}
?> 

 

 

Dieses Snippet wurde von Stefan Galinski eingesendet



Comments


Thomas, 24-07-06 01:38:
Hallo, wollte das Skript gerade mal testen, nur was kommt hier rein bzw. was muss hier gesetzt werden: {$plugin.tx_newloginbox.loginUID}
Stefan, 24-07-06 14:10:
Hi Thomas,

$plugin.tx_newloginbox.storageUID --> ID des SysFolders mit FE-Benutzern

$plugin.tx_newloginbox.loginUID --> ID der Seite mit dem Plugin newloginbox

BTW: Das Eingabefeld für Kommentare ist definitiv eine Nummer zu klein geraten...
Thomas, 25-07-06 00:46:
Hallo,

das mit den Constanten hab ich hinbekommen, danke. Nun hab ich noch das Problem das wenn ich mich als neuer Benutzer registrier, ich mich nicht einloggen kann. Wenn ich mir das Passwort über die Email Funktion zuschicken lass, und ein neues Passwort bekomme geht es wieder ;(

ps: gibt es eigentlich irgendwelche xhtml konformen varianten der fe_admin_fe_users.tmpl ?
Stefan, 25-07-06 13:13:
Ich kann dir nur sr_feuser_register von Stanislas Rolland empfehlen. Ich schrieb für diese Extension vor etlicher Zeit ein CSS-basiertes und XHTMl konformes Template. Du kannst es nutzen, indem du unter Templates das CSS-tmpl wählst. Mit diesem Plugin funktioniert auch die Benutzeregistrierung ohne Probleme. Das bei dir vorliegende Problem scheint zu sein, dass das Password nicht als MD5-Wert abgespeichert wird. Dies geschieht erst mit der Passwort vergessen-Funktion der newloginbox. Also kurz gesagt: wechsel die Extension für die Benutzeregistration (sr_feuser_register ist sowieso mittlerweile Standard).
Thomas, 26-07-06 14:49:
Hallo Stefan,

habe mittlerweile auf diese Extension gewechselt, was konformen code angeht, kommt man hier um welten schneller zum Ziel. Nur leider hab ich nach wie vor noch das Problem mit dem Passwort ;( Folgende Extensions sind installiert, kb_md5fepw 0.4.0 | sr_feuser_register 2.5.0 und die ver ist v4. Vielleicht noch irgend eine Idee wo der Hund begraben sein könnte?

Gruß Thomas
Thomas, 26-07-06 16:37:
Hallo Stefan,

habe mittlerweile auf diese Extension gewechselt, was konformen code angeht, kommt man hier um welten schneller zum Ziel. Nur leider hab ich nach wie vor noch das Problem mit dem Passwort ;( Folgende Extensions sind installiert, kb_md5fepw 0.4.0 | sr_feuser_register 2.5.0 und die ver ist v4. Vielleicht noch irgend eine Idee wo der Hund begraben sein könnte?

Gruß Thomas
Stefan, 26-07-06 20:45:
Schau doch mal in die Datenbank, ob die Passwörter als plaintext oder md5-Wert beim registrieren gespeichert werden. Ich muß allerdings zugeben, dass ich momentan keine Benutzerregistration implementiert habe. Frage doch am besten einfach mal auf einer Mailingliste nach. Evtl. kennt jemand dort das Problem...
Stefan, 23-08-06 17:15:
Falls noch nicht gemacht in sr_feuser_register die Einstellung "useMd5Password" auf den Wert "1" setzen. Das bewirkt die Speicherung der Nutzer mit MD5-Passwort.
Thomas, 29-08-06 20:35:
Hi,
ich habe relativ lange mit dem Ansatz gekämpft, bis er jetzt anscheinend endlich läuft. Prüf mal, ob ich auf einen Bug gestossen bin. Ich musste das PHP-Skript ändern:

$res = $GLOBALS['TYPO3_DB']->exec_INSERTquery('tx_kbmd5fepw_challenge', array('challenge' => $chal_val, 'tstamp' => time()));
$content.='<input type="hidden" name="challenge" value="'.$chal_val.'">';
return $content;

Ich glaube der Fehler im Skript war, dass der übergebene Content nicht wieder durchgereicht wurde.
Thomas, 30-08-06 21:11:
Hallo,

erstmal vielen Dank für das Feedback! Bei mir läuft nun alles bestens, das einzigste was leider immer noch nicht funktioniert ist, wenn der Benutzername ein Umlaut wie z.B. ü, ä ... enthält. Dann ist kein Login möglich.

Add comment

* - required field

*



*
*

Top 10 Updates

Login geändert am  09-Sep-2010 11:31:35
Schöne Schriften mit Google Font API geändert am  20-May-2010 16:36:59
TS basierte Searchbox für Indexed Search geändert am  18-May-2010 18:26:54
TYPO3 SEO geändert am  30-Apr-2010 09:43:20
Suchmaschinenfreundliche grafische Überschriften in TYPO3 geändert am  30-Apr-2010 09:33:56
Erstellen eines einfachen Infocenters mit TYPO3  geändert am  17-Nov-2009 12:11:22
Funktionierendes Section Menu mit TemplaVoila geändert am  05-May-2009 12:42:40
"Nicht im Menü" in Sitemap anzeigen geändert am  05-May-2009 12:12:24
Implementation des DHTML Menüs von brainjar.com  geändert am  01-Feb-2009 14:01:36
Beispiel DHTML Menü geändert am  01-Feb-2009 13:47:38

Latest comments

18-Jan-2012 11:03:20
cjjgeb cjjgeb schrieb: qUWC8M <a href="http://yviwfgyvopxz.com/">yviwfgyvopxz</a>
Typolink
18-Jan-2012 05:39:25
Melia Melia schrieb: Stands back from the kybeoard in amazement! Thanks!
Typolink
02-Jan-2012 22:48:33
Dietmar schrieb: Doch, genau das soll es doch sein. Sonst könntest Du ja die Seiten in der Vorschau nicht...
Eigenes vhost für das TYPO3 Backend
English
Suche: