2011-10-12 6 views
2

Des suggestions pour stocker efficacement le temps total de connexion d'un utilisateur avec Devise? En dehors du suivi du nombre de connexions, il ne semble pas que Devise ait un processus existant pour y parvenir.Rails/Devise: déterminer la durée totale de connexion de l'utilisateur

Merci!

class User < ActiveRecord::Base 

    devise :database_authenticatable, :registerable, 
     :recoverable, :rememberable, :trackable, :validatable, :timeoutable 

end 

Répondre

3

La question à laquelle il faut répondre est "Comment savez-vous quand un utilisateur s'est déconnecté?". Dans les cas simples, l'utilisateur clique sur un lien de déconnexion. Vous pouvez ensuite saisir un horodatage de cet événement lors de la destruction de la session utilisateur. Une simple comparaison de l'horodatage traçable avec l'horodatage de la destruction de la session utilisateur vous donne le temps total.

Cependant, que se passe-t-il si l'utilisateur ferme simplement l'onglet/la fenêtre/le navigateur avec votre application en cours d'exécution? Cet utilisateur est-il automatiquement déconnecté? Y a-t-il un ensemble de cookies qui permet à l'utilisateur de se connecter sans se connecter? Si oui, la réouverture d'une page dans l'application signifie-t-elle que l'utilisateur est toujours connecté, 3 jours plus tard?

Une fois que vous aurez trouvé des réponses à ces questions, je pense qu'une approche se rendra visible pour vous.

Espérons que cela aide.

Questions connexes