/ / Définit la valeur nil pour session_id pendant le délai d'attente de la session - inventé - ruby-on-rails, session, inventé

Définir la valeur nil pour session_id pendant le délai de session - option - ruby-on-rails, session, concevoir

Dans le projet de rails 3.2.13, j’utilise un système (1.4.2) plug-in pour le système d'authentification. Ici, j’ai besoin de mettre à jour l’identificateur de session_utilisateur_current pour lui attribuer la valeur Nil après expiration du délai de session. Comment remplacer la fonction de délai d’expiration?

Après la connexion, le champ session_id sera mis à jour comme"A9nEDMZFl7D4ytSfWxrY". Après la déconnexion, le champ session_id sera mis à jour avec une valeur nulle. Maintenant, je dois mettre à jour la même valeur nulle pour l'expiration de la session. Comment modifier la fonction d'expiration de session?

Dans la session "s créer, je mets à jour session_id en utilisant Devise.friendly_token

Réponses:

0 pour la réponse № 1

Vous n'avez pas besoin de définir la session sur nil. Tu devrais faire reset_session, pour réinitialiser l'identifiant de session.

Maintenant, ces deux cas que vous mentionnez sont déjà traités par carte:

  • lors de la création de la session, conçoit reset_session bloquer la fixation de session
  • lorsque votre session est expirée, peu importe ce qui se passe avec votre session: vous allez redirigé pour vous connecter, et après la connexion, votre session sera réinitialisée

Si vous stockez vos sessions dans une table,vous devriez, vous pourriez faire encore mieux et simplement supprimer les sessions expirées de la base de données. Si vous utilisez redis en tant que magasin de session, vous pouvez exécuter une expiration automatique de vos sessions et il se chargera de cela.

N'oubliez pas que c'est un avantage, car une session expirée ne sera de toute façon pas autorisée à entrer.

Une dernière remarque: pourquoi utilisez-vous toujours la version 1.4.2?