Maison >développement back-end >tutoriel php >Comment implémenter en toute sécurité la fonctionnalité « Se souvenir de moi » dans les systèmes de connexion PHP à l'aide de cookies persistants ?
Cookies persistants pour la fonctionnalité sécurisée « Se souvenir de moi » dans les systèmes de connexion PHP
Introduction
La mise en œuvre d'une fonctionnalité « se souvenir de moi » dans un système de connexion PHP nécessite le stockage d'un cookie sécurisé dans le navigateur de l'utilisateur. Ce cookie permet aux utilisateurs de rester connectés même après la fermeture de leur navigateur ou le redémarrage de leur appareil.
Structure de la base de données
Pour stocker les informations de mémorisation de moi en toute sécurité, créez un tableau séparé dans votre base de données :
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`) );
Les champs sélecteur et jeton seront utilisés pour stocker le souvenir de moi informations.
Après la connexion
Lorsqu'un utilisateur se connecte et sélectionne l'option "Se souvenir de moi", générez un sélecteur aléatoire (12 caractères) et un authentificateur (33 bytes) en utilisant la fonction random_bytes() ou une méthode similaire pour garantir le caractère aléatoire.
Définissez le cookie Remember Me en utilisant ce qui suit code :
setcookie( 'remember', $selector . ':' . base64_encode($authenticator), time() + 864000, // expires in 10 days '/', 'yourdomain.com', true, // TLS-only true // http-only );
Insérez le sélecteur, l'authentificateur haché, l'ID utilisateur et le délai d'expiration dans la table auth_tokens.
Ré-authentification au chargement de la page
Lors des chargements de page suivants, si l'utilisateur n'est pas déjà connecté et que le cookie Remember Me est set :
Détails
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!