Heim  >  Artikel  >  Backend-Entwicklung  >  Wie kann ich mit PHP verhindern, dass sich mehrere Benutzer gleichzeitig bei einem Konto anmelden?

Wie kann ich mit PHP verhindern, dass sich mehrere Benutzer gleichzeitig bei einem Konto anmelden?

WBOY
WBOYOriginal
2016-10-22 00:14:092309Durchsuche

Änderungsbedarf: Nach der Anmeldung bei einem Konto können sich andere Benutzer erneut bei dem Konto anmelden! Das aktuelle Konto wird offline geschaltet, genau wie die abnormale Anmeldung bei QQ. Kann mir jemand eine konkrete Implementierungsidee geben? ?

Antwortinhalt:

Änderungsbedarf: Nach der Anmeldung bei einem Konto können sich andere Benutzer erneut bei dem Konto anmelden! Das aktuelle Konto wird offline geschaltet, genau wie die abnormale Anmeldung bei QQ. Kann mir jemand eine konkrete Implementierungsidee geben? ?

Generieren Sie ein Token, speichern Sie es in der Datenbank und schreiben Sie es in die Sitzung. Vergleichen Sie während des Betriebs das Sitzungstoken mit der Datenbank. Wenn sie unterschiedlich sind, melden Sie sich ab.

„Wenn sich andere Benutzer erneut bei diesem Konto anmelden! Das aktuelle Konto wird offline geschaltet“

Hier möchten Sie es rechtzeitig oder nach der Aktualisierung (erneutes Senden einer http-Anfrage) erhalten.
Ersteres erfordert eine lange Verbindung wie einen Socket oder ein Heartbeat-Paket.
@xfspace hat auch den nächsten oder späteren Vorgang klarer gemacht.

Jedes Mal, wenn Sie sich anmelden, wird ein zufälliges Token zur Cookie-Verifizierung generiert.
Unterschiedliche Anmeldungen generieren unterschiedliche Token, sodass die zuvor generierten Cookies natürlich ungültig werden Kopiert das Cookie direkt und fügt es zur Verwendung in den Browser eines anderen Computers ein. Es ist schwierig, die Serverseite zu identifizieren

Es ist nicht so problematisch.

1. Erstellen Sie eine neue Token-Tabelle.

Felder: token (Token, normalerweise reichen 8 zufällige Zeichenfolgen), uid (Benutzer-ID dieser Site), ExpiresIn (Ablaufzeit)

Wenn sich ein Benutzer erfolgreich anmeldet, wird ein Datensatz eingefügt und alle vorherigen Token-Daten des Benutzers sind abgelaufen oder gelöscht. Dadurch wird sichergestellt, dass immer nur ein gültiges Token gleichzeitig aktiv ist, wodurch wiederholte Anmeldungen verhindert werden.

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:JSON-Hex in String konvertiertNächster Artikel:JSON-Hex in String konvertiert