[TYPO3-german] fe_user mehrfach login verhindern

Klaus Biedermann klaus.biedermann at gmx.de
Sat Jun 26 13:28:27 CEST 2010


Stephan Schuler schrieb:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA256
> 
> Hallo zusammen
> 
> 
> Darf man fragen wozu eine solche Funktion gebraucht wird?
> 
> Die erste Session zu lassen und alle weiteren zu töten halte ich für Usability-Unfug.
> 
> Ich melde mich von einem Rechner an, sagen wir aus dem Büro kurz nach Feierabend weil ich noch einige Dinge checken will bevor ich heim fahre.
> Weil s dann schnell gehen muss schalte ich den Rechner aus und fahre heim.
> Daheim stelle ich fest: Mensch, ich kann mich nicht anmelden weil ich im Büro noch angemeldet bin.
> 
> Muss ich daheim jetzt warten bis TYPO gemerkt hat, dass im Büro wohl kein Click mehr kommen wird weil die dortige Session abgelaufen ist?
> 
> Üblich und sinnvoll sind meiner Meinung nach zwei Verfahren:
> * Der letzte Login tötet alle vorherigen.
> * Man zeigt an geeigneter Stelle eine Informationsbox an aus der hervorgeht, wie viele gleichzeitige Sessions der Benutzer gerade betreibt und von welchen Rechnernamen aus. Hier ließe sich ein "kick"-Button einbauen.
> 
> Ihr solltet euer Kick-Feature übrigens kurz mit nichtangemeldeten Benutzern prüfen. Ich bin mir gerade nicht sicher welche UID ein nichtangemeldeter Benutzer hat, es könnte aber die 0 sein. Eine Session wird ein solcher Benutzer aber mit Sicherheit haben.
> Je nachdem wann ihr die überzähligen FE-Sessions tötet könnte das Non-Auth-FE-Sessions unbrauchbar machen.
> 
> 
> Grüße,
> 
> 
> 
> Stephan Schuler
> Web-Entwickler
> 
> Telefon: +49 (911) 539909 - 0
> E-Mail: Stephan.Schuler at netlogix.de
> Internet: http://media.netlogix.de
> 
> - --
> netlogix GmbH & Co. KG
> IT-Services | IT-Training | Media
> Andernacher Straße 53 | 90411 Nürnberg
> Telefon: +49 (911) 539909 - 0 | Fax: +49 (911) 539909 - 99
> E-Mail: mailto:info at netlogix.de | Internet: http://www.netlogix.de/
> 
> netlogix GmbH & Co. KG ist eingetragen am Amtsgericht Nürnberg (HRA 13338)
> Persönlich haftende Gesellschafterin: netlogix Verwaltungs GmbH (HRB 20634)
> Umsatzsteuer-Identifikationsnummer: DE 233472254
> Geschäftsführer: Stefan Buchta, Matthias Schmidt
> 
> ________________________________________
> 
> 
> Von: typo3-german-bounces at lists.typo3.org [typo3-german-bounces at lists.typo3..org] im Auftrag von Steffen Ritter [info at rs-websystems.de]
> Gesendet: Samstag, 26. Juni 2010 09:47
> An: typo3-german at lists.typo3.org
> Betreff: Re: [TYPO3-german] fe_user mehrfach login verhindern
> 
> Am 25.06.2010 13:23, schrieb Klaus Biedermann:
>> Florian Zimmermann schrieb:
>>> Hallo Klaus,
>>> mir fällt nur ein abfragen ob der User schon eingeloggt ist und ggf.
>>> die anderen Sessions löschen.
>>> public function killUserSessions(){
>>> $user = get_object_vars($GLOBALS["TSFE"] -> fe_user);
>>> $uid = $user['user']['uid'];
>>> $ses_id = $GLOBALS["TSFE"]->fe_user->id;
>>> if (!empty($uid)) {
>>> $res
>>> =$GLOBALS['TYPO3_DB']->exec_SELECTquery('ses_id','fe_sessions','ses_userid
>>> = '.$uid);
>>> while ($row = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res)) {
>>> $rows[] = $row;
>>> }
>>> if (sizeof($rows) > 1){
>>> $query = tx_pp_fc_db::buildQueryArray('ses_id',,);
>>> $res =
>>> $GLOBALS['TYPO3_DB']->exec_DELETEquery('fe_sessions','ses_userid =
>>> '.$uid.' AND ses_id != '".$ses_id."'');
>>> }
>>> }
>>> }
>>> Bis dann
>>>
>>> Florian
>>> Am 25.06.2010 00:03, schrieb Klaus Biedermann:
>>>> Hallo Typo3 Liste,
>>>>
>>>> normaler Weise kann sich ein Frontend Benutzer von verschiedenen
>>>> Rechnern gleichzeitig einloggen.
>>>> Gibt es einen Weg dies zu verhindern?
>>>>
>>>> lg
>>>>
>>>> Klaus
>> Hallo Florian,
>>
>> vielen Dank für Deine Hilfe.
>> Es funktioniert soweit. Nur jetzt können sich die Benutzer gegenseitig
>> rauswerfen.
>>
>> Daher habe ich Deine Methode etwas geändert; es wird nach Timestamp
>> sortiert und die neueren Sessions gekillt. So bleibt der erste User
>> eingeloggt.
>>
>> ############# BEGIN ################
>>
>> public function killUserSessions(){
>> $user = get_object_vars($GLOBALS["TSFE"] -> fe_user);
>> $uid = $user['user']['uid'];
>> $ses_id = $GLOBALS["TSFE"]->fe_user->id;
>> if (!empty($uid)) {
>> $res
>> =$GLOBALS['TYPO3_DB']->exec_SELECTquery('ses_id','fe_sessions','ses_userid
>> = '.$uid, '', 'ses_tstamp ASC');
>> while ($row = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res)) {
>> $rows[] = $row;
>> }
>> if (sizeof($rows) > 1){
>> for($i=1;$i<count($rows);$i++){
>> $res = $GLOBALS['TYPO3_DB']->exec_DELETEquery('fe_sessions','ses_userid
>> = '.$uid.' AND ses_id = "'.$rows[$i]['ses_id'].'"');
>> }
>>
>> }
>> }
>> }
>>
>> ############## END #################
> also ich würde den User in dem fall auf jeden falla uf eine info seite
> umleiten!
> _______________________________________________
> TYPO3-german mailing list
> TYPO3-german at lists.typo3.org
> http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german
> 
> 
> -----BEGIN PGP SIGNATURE-----
> Version: PGP Universal 3.0.0 (Build 2881)
> Charset: Windows-1252
> 
> wpUDBQFMJcLupp0IwsibV8MBCJYuA/9xay2wGc185tubrEmclX9e9QdQQ+UD82Vz
> ZBD8TESCJhF1L7jteFPvH+Pli12pBvvJHVpF9wO9DGxlDPjvKCKz6h7nRbwL/214
> K/4DokcCNLjyb8qy3NJAXJSjPpHdgPrHO9OHMpWHo1H4kGw5VMkCtFcySwijsZJJ
> dYqYowA+FA==
> =RPHo
> -----END PGP SIGNATURE-----

Hallo Stephan,

da hast Du völlig recht, es ist doch keine gute Idee die erste Session 
zu belassen und die übrigen Sessions zu killen.

Vielleicht sollte ich mehrfach eingeloggten Benutzern einen Hinweis 
anzeigen und einen Kill-Button.

lg

Klaus


More information about the TYPO3-german mailing list