Comment définir un cookie Rails pour démarrer et/ou expirer à une certaine date?
Extraits de documentation Rails 5 :
Les cookies sont lus et écrits via les cookies ActionController #.
Les cookies lus sont ceux reçus avec la demande, les cookies en cours d'écriture seront envoyés avec la réponse. La lecture d'un cookie ne récupère pas l'objet cookie lui-même, juste la valeur qu'il contient.
Exemples d'écriture:
# Sets a simple session cookie. # This cookie will be deleted when the user's browser is closed. cookies[:user_name] = "david" # Sets a cookie that expires in 1 hour. cookies[:login] = { value: "XJ-122", expires: 1.hour } # Sets a cookie that expires at a specific time. cookies[:login] = { value: "XJ-122", expires: Time.utc(2020, 10, 15, 5) } # Sets a "permanent" cookie (which expires in 20 years from now). cookies.permanent[:login] = "XJ-122"
[...]
Les symboles d'option pour la configuration des cookies sont:
:expires
- L'heure à laquelle ce cookie expire, en tant qu'objet Time ou ActiveSupport :: Duration.[...]
votre question pourrait être liée à cette question: Comment puis-je définir dynamiquement le délai d'expiration pour une session basée sur les cookies dans Rails
l'un des commentaires indique Deprecating SlideSessions :
"..Si vous devez définir une période d'expiration pour les sessions via tous les contrôleurs de votre application, ajoutez simplement l'option suivante à votre fichier config/intializers/session_store.rb:
:expire_after => 60.minutes
Si vous devez définir un temps d'expiration différent dans différents contrôleurs ou actions, utilisez le code suivant en action ou un certain before_filter:
request.session_options = request.session_options.dup request.session_options[:expire_after]= 5.minutes request.session_options.freeze
La duplication du hachage n'est nécessaire que parce qu'il est déjà gelé à ce stade, même si la modification d'au moins: expire_after est possible et fonctionne parfaitement ... "
J'espère que ça aide. :)
Il convient de noter qu'à partir de maintenant, il est impossible de définir une heure de début pour un cookie. Un jeu de cookies est toujours actif immédiatement.