Heim >Backend-Entwicklung >PHP-Tutorial >Wie kann ich mithilfe von PHP und Cookies eine sichere Funktion „Angemeldet bleiben' implementieren?
Einführung
Die Implementierung einer Funktion „Angemeldet bleiben“ ermöglicht Benutzern auch nach dem Schließen des Browsers eingeloggt zu bleiben. Diese Funktion erhöht den Benutzerkomfort und verbessert das gesamte Benutzererlebnis. In diesem Artikel befassen wir uns mit einer sicheren Methode zum Speichern und Überprüfen von Cookies im Browser eines Benutzers für einen dauerhaften Anmeldemechanismus.
Cookies sicher speichern
Auf sichere Weise Wenn Sie ein Cookie speichern, verwenden wir eine separate Tabelle in der Datenbank:
CREATE TABLE `auth_tokens` ( `id` integer(11) not null UNSIGNED AUTO_INCREMENT, `selector` char(12), `token` char(64), `userid` integer(11) not null UNSIGNED, `expires` datetime, PRIMARY KEY (`id`) );
Prozess nach der Protokollierung In
Nach erfolgreicher Anmeldung mit aktivierter Option „Angemeldet bleiben“:
Setzen Sie ein Cookie mit den folgenden Werten:
'remember': $selector.':'.base64_encode($authenticator)
Erneute Authentifizierung auf Seite Laden
Um den Benutzer erneut zu authentifizieren:
if (empty($_SESSION['userid']) && !empty($_COOKIE['remember'])) { list($selector, $authenticator) = explode(':', $_COOKIE['remember']); $row = $database->selectRow( "SELECT * FROM auth_tokens WHERE selector = ?", [ $selector ] ); if (hash_equals($row['token'], hash('sha256', base64_decode($authenticator)))) { $_SESSION['userid'] = $row['userid']; // Regenerate login token and update database } }
Details zum Ansatz
Das obige ist der detaillierte Inhalt vonWie kann ich mithilfe von PHP und Cookies eine sichere Funktion „Angemeldet bleiben' implementieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!