2012-05-09 1 views
0

Je mise en œuvre de la gestion des sessions et je stocke actuellement 4 types d'informations dans le db:La mise en œuvre de gestion de session

  1. user_id
  2. session_id (dièse)
  3. insertion_time (pour les délais d'attente)
  4. persistance (si l'utilisateur a un cookie persistant)

Il est possible pour l'utilisateur d'avoir plusieurs ssions s'ouvrent avec différents appareils. Si l'utilisateur se déconnecte, comment puis-je savoir laquelle de ces sessions je devrais supprimer?

Quelles informations uniques sont généralement stockées avec les informations que j'ai déjà? L'adresse IP ne fonctionne pas vraiment car elle pourrait être partagée. Devrais-je stocker les informations du navigateur, mais que faire si c'est pareil?

Répondre

1

Vous ne devez utiliser qu'un ID/hachage de session unique pour reconnaître une session.

Lorsqu'un utilisateur se connecte (par exemple, avec son nom d'utilisateur/mot de passe), vous lui indiquerez l'ID/hachage de sa session. Lorsqu'un utilisateur navigue, il vous indique son ID/hash de session pour chaque chargement de page. C'est comme ça que vous savez qu'il s'agit d'un utilisateur connecté et non d'un nouvel utilisateur. Lorsqu'un utilisateur tente de se déconnecter, il vous indique toujours l'ID/hachage de sa session. Vous pouvez l'utiliser pour trouver et supprimer la bonne session unique.

0

Vous devez stocker Last access timeLast Modify Time de la session pour calculer le délai d'inactivité de la session.

Pour identifier la session utilisateur, vous devez stocker l'ID du navigateur. Le mappage de l'ID du navigateur et de l'ID utilisateur vous permettra de déterminer quelle session de l'utilisateur vous devez supprimer.

Questions connexes