2010-07-12 21 views
1

Je me demande si quelqu'un sait exactement comment Gmail, Hotmail, Facebook etc gère le scénario suivant. (NOTE: En supposant Cookie est partagé entre les onglets)Quelle est la bonne façon de gérer plusieurs comptes de connexion depuis la même machine et le même navigateur?

  1. Ouvre deux page de connexion à l'application.
  2. L'utilisateur 1 se connecte dans le domaine.
  3. L'utilisateur 1 modifie certaines données sans les enregistrer.
  4. L'utilisateur 2 se connecte au domaine dans un onglet distinct.
  5. L'utilisateur 1 revient à son onglet et enregistre les données.

J'ai essayé de répéter les étapes FF pour Gmail, il me donne parfois « Cela peut se passer automatiquement parce qu'un autre utilisateur connecté à partir du même navigateur » et enregistre l'utilisateur précédent automatiquement », mais les autres fois seulement spectacles "La page ne redirige pas correctement" et je vais devoir effacer mon cookie

Hotmail, semble être un peu mieux, où il détecte immédiatement que je suis connecté dans la première page et demande si je voudrais Si vous avez choisi de changer de compte et de revenir en arrière pour essayer d'enregistrer les données, hotmail envoie un message d'erreur de connexion.Tout le monde peut faire la lumière sur la façon dont chacun est mis en œuvre ainsi que ce qui pourrait être la meilleure pratique pour gérer ce problème?

Répondre

1

En général, pour contrer ces problèmes, vous devez effectuer des références croisées de l'identité à partir des cookies et d'autres données soumises. Ainsi, le formulaire soumis inclura l'identifiant de l'utilisateur, et le cookie inclura la session de l'utilisateur. Si celles-ci sont incohérentes, rejetez la tentative, invalidez la session et envoyez l'utilisateur à la connexion. Si vos formulaires ont des jetons de protection CSRF (comme ils le devraient), le jeton CSRF peut également coder l'ID utilisateur, ainsi la tentative de sauvegarde des données par l'utilisateur 1 échouera en raison d'un jeton CSRF non valide sur le formulaire.

+0

Les cookies d'authentification normale autorisant uniquement les lectures autorisées (qui sont invalidées lors de la déconnexion) et les jetons CSRF pour les écritures (qui doivent être liés à l'autorisation) correspondent au fonctionnement de la plupart des sites. Certains ont même l'équivalent pour les sessions déconnectées où l'autorisation est juste un cookie de navigateur unique. – daaku