Heim > Artikel > Backend-Entwicklung > Wie implementiert man die „Remember Me'-Funktionalität sicher in PHP-Anmeldesystemen mithilfe dauerhafter Cookies?
Persistente Cookies für sichere „Remember Me“-Funktionalität in PHP-Anmeldesystemen
Einführung
Die Implementierung einer „Angemeldet bleiben“-Funktion in einem PHP-Anmeldesystem erfordert das Speichern eines sicheren Cookies im Browser des Benutzers. Mit diesem Cookie können Benutzer auch nach dem Schließen ihres Browsers oder dem Neustart ihres Geräts angemeldet bleiben.
Datenbankstruktur
Um die Erinnerungsinformationen sicher zu speichern, erstellen Sie eine separate Tabelle in Ihre 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`) );
Die Selektor- und Tokenfelder werden zum Speichern der Erinnerung verwendet Informationen.
Nach dem Anmelden
Wenn sich ein Benutzer anmeldet und die Option „Angemeldet bleiben“ auswählt, generieren Sie einen Zufallsselektor (12 Zeichen) und einen Authentifikator (33 Bytes) mithilfe der Funktion random_bytes() oder einer ähnlichen Methode, um die Zufälligkeit sicherzustellen.
Setzen Sie das Erinnerungs-Cookie wie folgt Code:
setcookie( 'remember', $selector . ':' . base64_encode($authenticator), time() + 864000, // expires in 10 days '/', 'yourdomain.com', true, // TLS-only true // http-only );
Fügen Sie den Selektor, den Hash-Authentifikator, die Benutzer-ID und die Ablaufzeit in die Tabelle auth_tokens ein.
Erneute Authentifizierung beim Laden der Seite
Bei nachfolgenden Seitenladevorgängen, wenn der Benutzer nicht bereits angemeldet ist und das Cookie „Angemeldet bleiben“ aktiviert ist set:
Details
Das obige ist der detaillierte Inhalt vonWie implementiert man die „Remember Me'-Funktionalität sicher in PHP-Anmeldesystemen mithilfe dauerhafter Cookies?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!