Maison  >  Article  >  développement back-end  >  Comment implémenter en php qu'une seule personne puisse se connecter à un compte

Comment implémenter en php qu'une seule personne puisse se connecter à un compte

藏色散人
藏色散人original
2021-03-12 10:55:032978parcourir

Méthode php pour réaliser qu'une seule personne peut se connecter à un compte : 1. Stockez les informations de session dans redis 2. Stockez le session_id dans la base de données mysql 3. Lors de la connexion, après avoir vérifié l'utilisateur ; nom et mot de passe, lisez les informations utilisateur de la base de données, obtenez l'identifiant de session de l'utilisateur et vérifiez si la session a expiré ; 4. Si elle n'a pas expiré, utilisez openfire pour envoyer le message 5. Mettez à jour le nouvel identifiant de session dans la base de données ;

Comment implémenter en php qu'une seule personne puisse se connecter à un compte

L'environnement d'exploitation de cet article : système Windows 7, version PHP 8, ordinateur DELL G3

php n'autorise qu'une seule personne pour avoir le même compte en même temps Connectez-vous

J'ai déjà réfléchi à ce problème et je l'ai mis en œuvre aujourd'hui. Cela prend presque 4 heures de la recherche au développement. C'est un peu comme QQ Si vous vous connectez avec deux ordinateurs, l'un supplantera l'autre et vous demandera des informations de connexion depuis d'autres emplacements.

1. Principe de mise en œuvre

1. L'utilisateur se connecte sur l'ordinateur A, les informations de session sont stockées dans redis et le session_id est stocké dans la base de données mysql.

2. Le même utilisateur se connecte sur l'ordinateur B. Après avoir vérifié le nom d'utilisateur et le mot de passe, lisez les informations utilisateur dans la base de données, obtenez l'identifiant de session de l'utilisateur connecté sur l'ordinateur A, puis vérifiez si le la session a expiré dans Redis.

3. S'il expire, openfire n'a pas besoin de transmettre les informations d'invite. S'il n'a pas expiré, après que PHP ait utilisé openfire pour envoyer le message, supprimez la session dans Redis sur laquelle l'utilisateur s'est connecté sur l'ordinateur A. Après la suppression, placez les informations personnelles de l'utilisateur connecté sur l'ordinateur B dans la session et mettez les informations personnelles de l'utilisateur connecté sur l'ordinateur B dans la session, et supprimez la session dans laquelle l'utilisateur s'est connecté sur l'ordinateur B. Le session_id est mis à jour dans la base de données. Ici, le push doit être envoyé en premier, puis la session est effacée. l'utilisateur de l'ordinateur A ne recevra pas le message envoyé par xmpp.

Remarque :

openfire est une sorte de Java cms et possède sa propre base de données. La table utilisateur que vous créez doit établir une sorte de relation entre la table utilisateur fournie avec openfire (telle que : numéro de téléphone portable, email, etc.) pour faciliter la transmission des informations.

Le même session_id doit être connecté sur le même support Pour le moment, il n'est pas nécessaire de mettre à jour la base de données et les messages push

Ce qui suit est une brève introduction au processus d'installation et. à quoi faire attention.

2. Installer les outils utilisés

# yum install php php-fpm nginx mysql mysql-server redis php-redis php-devel php-pdo php-mysql

Modifier la méthode de stockage de la session :

Afficher la copie et l'impression ?

# vim /etc/php-fpm.d/www.conf     
  
;php_value[session.save_handler] = files   //注释掉旧的  
;php_value[session.save_path] = /var/lib/php/session  
  
php_value[session.save_handler] = redis  //添加以下内容  
php_value[session.save_path] = "tcp://127.0.0.1:6379"

Après le démarrage du service, si le Le contenu suivant explique, la session a été enregistrée avec succès dans redis

Comment implémenter en php quune seule personne puisse se connecter à un compte

redis telnet pour afficher la session

adresse de téléchargement openfire : http://www.igniteraltime. org/downloads/

Afficher la copie et l'impression ?

# rpm -ivh ./*.rpm   //下载的是rpm安装包

Une fois Openfire démarré, visitez http://ip:9090 et configurez-le étape par étape. l'encodage de la base de données.

[Apprentissage recommandé : "Tutoriel vidéo PHP"]

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn