Doppel-Login verhindern?

Loddar1

Erfahrenes Mitglied
Mal eine Frage an die Spezies,
Wenn ich 2 Computer habe, oder auch mehr kann ich mich mit 2,3 oder mehr Computer mit gleichen Daten einloggen.
Ist es möglich dieses zu unterbinden?
So das der User A sich nur einmal einloggen kann, wenn User A sich mit einem anderen Computer einloggen will
sollte eine Meldung kommen und das Login
 

Sprint

Erfahrenes Mitglied
Ich gehe jetzt mal von einer Webseite aus.

Ich habe sowas früher auch mal verwendet. Ich habe damals ein Zufallskombi aus Buchstaben erzeugt und mit den Logins in die Datenbank geschrieben. Vor dem Login wird dieses Feld überprüft und wenn es gefüllt ist, wird der Login verwehrt. Das setzt aber voraus, daß mal sich später ordentlich ausloggt und das Feld dabei geleert wird, oder die Sperre nur eine gewisse Zeit gültig ist.
 

Andreas-B

Mitglied
Du kannst einen Timestamp in der Datenbank speichern, der den Zeitpunkt markiert, an dem die session nicht mehr gültig ist. Dieser Timestamp wir bei jedem Request überprüft und wenn er noch gültig ist erneuert. Wenn er nicht mehr gültig ist, wird der User ausgeloggt.
Wenn der User sich ausloggt oder ausgelogt wird, wird der Wert aus der Datenbank gelöscht.
Wenn sich ein User versucht einzuloggen in der Zeit in der die Session noch gültig ist, wird der Login nicht angenommen.
 

Loddar1

Erfahrenes Mitglied
So etwa habe ich es mir gedacht, werde mal probieren wie ich mit einem timestamp hinbekomme.
Habt vielen Dank für eure Antworten.
 

ComFreek

Mod | @comfreek
Moderator
Warum möchtest du einen Doppellogin vermeiden?
Was ist, wenn der Nutzer zwei Browserfenster offen hat? Oder zwei verschiedene Browser? Oder Desktop und Handy?
Am Ende wird es die Nutzer (insb. Power User) nur nerven.
 

Bratkartoffel

gebratene Kartoffel
Premium-User
Mal davon abgesehen, dass mich dass auch nerven würde:
Du kannst mit jedem Login die Session-ID des Benutzers in der Datenbank speichern. Bei jedem neuen Login wird die alte ID überschrieben.
Mit jedem Request prüfst du die gespeicherte ID mit der aktuellen Session-ID. Wenn unterschiedlich, dann mach ein session_destroy().

Grüsse,
BK
 

Andreas-B

Mitglied
@Bratkartoffel So löscht der man seine Daten der Session von Client A, wenn man sich auf Client B einloggt.
Ich denke das ist genau das Gegenteil von dem was Loddar1 wollte.

@ComFreek Für das verhindern von Multiple Logins gibt es verschiedene Usecases. Beispielsweise:
- Sicherheit: Einige Banken wollen zum Beispiel nicht, dass man mehrfach eingeloggt ist.
- Geschäftsmodell: Kostenpflichtige Streaming Plattformen möchten oft nicht, dass man beliebig oft in einem Konto eingeloggt ist.