Bonjour à tous,
J'ai créé une application web, la connexion se passe super bien.
Mais dans mon système de connexion, je souhaiterais empêcher un utilisateur deja connecté, de pouvoir se connecter une seconde fois sur un autre appareil sans être deconnecté de la première connexion.

donc en un mot je souhaite empecher un utilisateur d'être connecté une seconde fois sans qu'il ne soit deconnecté de la première connexion

4 réponses


Enregistre en base l'état de connexion de l'utilisateur (par contre si l'utilisateur se déconnecte en vidant ses cookies tu ne sera pas en mesure de le détecter)

Merci pour la reponse.
Mais si l'utilisateur se connecte avec sont ordinateur portable sans se deconnecter et va se connecter avec son ordinateur de bureau?
Mon application est une application web Symfony je faisais des recherches et je suis tombé sur ce tuto (https://www.prestaconcept.net/blog/symfony/bloquer-la-connexion-simultanee-a-un-meme-compte-c-est-possible), le problème je n'arrive pas à bien comprendre :

lors de la connexion utilisateur tu creer un token en session et en base dans la table user, a chaque page tu controle que ces deux token sont identiques. lors de la deuxieme connexion le token en bdd change, sur le premier pc ce n'est plus égal => retour a la page de login

Hello :)

Pour la solution tout est dit, quand un utilisateur se connecte, ça modifie le token et donc ça déconecte l'utilisateur du premier appareil qui a toujours l'ancien token en cookies

Pour le problème que soulève Grafikart: Ce n'est pas un problème, ça montre juste que le token est obligatoire, si il vide ses cookies ou sa session bah l'utilisateur sera déconecté tout simplement, et il comprendra qu'il est obligé de conserver ses cookies de connexion :) tu peux l'expliquer à l'utilisateur dans un bandeau cookie, "auth_token: Fonctionnel | Strictement obligatoire ..." (de toutes façon RGPD t'es obligé de faire savoir à l'utilisateur tous les cookies que tu utilises et pourquoi, et si ils sont obligatoires pour le fonctionement du site ou pas x) )