web-dev-qa-db-fra.com

Arrêter l'ouverture des liens utilisateur dans un nouvel onglet

Sur un site sécurisé, est-il acceptable d'empêcher les utilisateurs d'ouvrir un lien dans un nouvel onglet en les déconnectant?

J'ai une application Web de jeux mobiles et mes utilisateurs ne peuvent en jouer qu'une à la fois. Pour éviter qu'ils ne tentent de jouer à plusieurs jeux à la fois, je veux les déconnecter lorsqu'ils essaient de l'ouvrir dans un nouvel onglet.

J'ai vérifié sur quelques sites de réseaux sociaux et bancaires. Seul un de mes sites Web bancaires s'est soucié de cela et m'a déconnecté en essayant d'ouvrir un lien dans un nouvel onglet.

Mise à jour

@fhlamarche m'a mis sur la bonne voie et j'ai fait à peu près ce que @Martijn a suggéré dans son commentaire.

Lorsqu'un utilisateur se connecte, je définis un GUID dans sa session et le renvoie au client. Chaque demande suivante du client envoie le GUID. S'ils ouvrent un nouvel onglet/fenêtre/navigateur, le le jeu se connecte à nouveau et le GUID est mis à jour. Si l'utilisateur essaie de faire une action dans la fenêtre d'origine avec l'ancien GUID, le serveur répond avec un message d'erreur.

14
That-_-Guy__

Vous regardez le problème sous le mauvais angle. Un utilisateur peut également ouvrir un autre navigateur ou utiliser un deuxième appareil, ce qui signifie que vous ne pouvez pas compter sur l'idée d'ouvrir des onglets (et de l'empêcher), ni sur l'adresse IP. Votre solution doit être côté serveur. Les déconnecter ne ferait que les ennuyer. Faites en sorte que votre site Web leur montre le même jeu, quel que soit le navigateur/l'appareil/l'onglet (solution difficile), ou tout simplement les empêche de jouer à plus d'un jeu à la fois (solution facile).

60
0xFF

Sur tout le site est pas idéal pour briser les attentes d'un utilisateur.

Comme un utilisateur s'attend à pouvoir naviguer sur Internet avec des onglets dans son navigateur, vous ne devriez pas le casser.

41
DA01

Le Hangout Google a les mêmes exigences que votre application. Vous ne pouvez pas faire deux hangouts en même temps.

Pourtant, Google ne choque pas l'utilisateur en déconnectant le premier appel lorsqu'un deuxième appel est tenté. Au lieu de cela, vous voyez un message d'erreur dans la fenêtre du deuxième appel.

Pourquoi n'essayez-vous pas la même approche?

12
vivek_ganesan