Heim  >  Artikel  >  Datenbank  >  So implementieren Sie die Code-Scanning-Anmeldung in Redis

So implementieren Sie die Code-Scanning-Anmeldung in Redis

PHPz
PHPznach vorne
2023-05-28 14:58:161317Durchsuche

Einführung in die Anforderungen

Lassen Sie uns zunächst vorstellen, was die Anmeldung per Scan-QR-Code ist. Mittlerweile haben die meisten Schüler QQ, Taobao, Tmall und andere Software auf ihren Mobiltelefonen installiert. Die Unternehmen, die diese Apps entwickeln, verfügen über entsprechende Websites. Um die Anmeldung für Benutzer bei der Nutzung ihrer Website komfortabler und sicherer zu gestalten. Diese Unternehmen bieten Dienste an, bei denen Sie sich mit Ihrem Mobiltelefon durch Scannen anmelden können. Der Effekt beim Anmelden auf der Webseite ist wie folgt:

So implementieren Sie die Code-Scanning-Anmeldung in Redis

So implementieren Sie die Code-Scanning-Anmeldung in Redis

Viele Freunde finden es vielleicht seltsam, dass auf der Webseite nur ein QR-Code angezeigt wird. Woher weiß sie, welches Mobiltelefon den QR-Code gescannt und sich angemeldet hat? Darüber hinaus können dem Benutzer nach Abschluss der Anmeldung die Benutzerinformationen direkt angezeigt werden, was wirklich erstaunlich ist.

Grundsatzerklärung

Webseite + Server

Der nächste Schritt ist die detaillierte Umsetzung dieses Dienstes. Wenn ein Benutzer die Anmeldeseite der Website öffnet, wird eine Anfrage an den Browserserver gesendet, um den Anmelde-QR-Code zu erhalten. Dies ist das Prinzip.

Nach Erhalt der Anfrage generiert der Server zufällig eine UUID, speichert diese ID als Schlüsselwert auf dem Redis-Server und legt eine Ablaufzeit fest. Nach Ablauf muss der Anmelde-QR-Code des Benutzers aktualisiert und erneut abgerufen werden. Kombinieren Sie gleichzeitig diesen Schlüsselwert mit der Bestätigungszeichenfolge des Unternehmens und generieren Sie ein QR-Code-Bild über die QR-Code-Generierungsschnittstelle (QR-Code-Generierung). Im Internet gibt es viele vorgefertigte Schnittstellen und Quellcodes, die jedoch nicht verfügbar sind Hier eingeführt.) Geben Sie dann das QR-Code-Bild und die UUID an den Browser des Benutzers zurück.

Der Browser sendet regelmäßig Anfragen an den Server, um zu überprüfen, ob die Anmeldung erfolgreich war. Diese Anfragen enthalten QR-Code und UUID-Informationen. Die Anfrage trägt uuid als Kennung der aktuellen Seite. Einige Schüler sind möglicherweise verwirrt, weil der Server in Redis nur die UUID als Schlüssel speichert. Woher kommen also die ID-Informationen des Benutzers?

Hier gibt es tatsächlich Benutzer-ID-Informationen. Diese ID-Informationen werden vom mobilen Server in Redis gespeichert.

Mobiler Client + Server

Wenn der Browser den QR-Code erhält, zeigt er ihn auf der Webseite an und fordert den Benutzer auf: „Bitte nehmen Sie Ihr Mobiltelefon heraus und öffnen Sie den Scan, um sich anzumelden.“ Der Benutzer nimmt sein Mobiltelefon heraus und scannt den QR-Code, um Verifizierungsinformationen und eine UUID zu erhalten (die Funktion zum Scannen des QR-Codes zum Erhalten einer Zeichenfolge gibt es auch im Internet in vielen Demos, daher werde ich sie hier nicht im Detail vorstellen). .

Da sich das mobile Endgerät bereits angemeldet hat, enthalten die Parameter beim Zugriff auf den Server des mobilen Endgeräts das Token eines Benutzers, und der Server des mobilen Endgeräts kann es auf die Benutzer-ID des Benutzers analysieren (hier wird der Wert stattdessen vom Token übernommen). Das direkte Weitergeben der Benutzer-ID dient der Sicherheit. Das direkte Weitergeben der Benutzer-ID kann abgefangen und geändert werden. Das Token ist verschlüsselt, sodass das Risiko einer Änderung viel geringer ist.

Das mobile Endgerät verwendet die analysierten Daten und das Benutzertoken als Parameter, um eine Anmeldeanforderung zur Überprüfung an den Server zu senden (der Server ist hier der mobile Server, und der mobile Server und der Webserver sind nicht derselbe Server). Nach Erhalt der Anfrage vergleicht der Server zunächst die Überprüfungsinformationen in den Parametern, um zu bestätigen, ob es sich um die vom Benutzer zum Anmelden angeforderte Schnittstelle handelt. Wenn ja, senden Sie eine Bestätigungsnachricht an das Mobiltelefon zurück.

Wenn das mobile Endgerät eine Antwort erhält, sollte das Anmeldebestätigungsfeld angezeigt werden, um Fehlbedienungen des Benutzers zu vermeiden und das Anmeldeerlebnis zu verbessern. Nachdem der Benutzer bestätigt hat, dass der Anmeldevorgang durchgeführt wurde, sendet das Mobiltelefon die Anfrage erneut. Nachdem der Server die UUID und die Benutzer-ID erhalten hat, speichert er die Benutzer-ID des Benutzers als Wert in einem Schlüssel-Wert-Paar in Redis mit der UUID als Schlüssel.

Erfolgreiche Anmeldung

Wenn der Browser dann erneut eine Anfrage sendet, kann der browserseitige Server eine Benutzer-ID abrufen und die Anmeldemethode aufrufen, um ein browserseitiges Token zu generieren. Wenn der Browser erneut eine Anfrage sendet, wird der Benutzer zurückgegeben Informationen an den Browser und die Anmeldung ist erfolgreich. Wir entscheiden uns dafür, Benutzer-IDs statt Benutzerinformationen direkt zu speichern, da die Benutzerinformationen auf dem Mobiltelefon und im Browser möglicherweise nicht genau identisch sind.

Das Login-Schema sieht wie folgt aus:
So implementieren Sie die Code-Scanning-Anmeldung in Redis




Das obige ist der detaillierte Inhalt vonSo implementieren Sie die Code-Scanning-Anmeldung in Redis. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen