J'utilise Rack pour essayer d'implémenter la fonctionnalité "Remember Me" dans mon application Sinatra.Définir l'expiration du cookie de session de Rack par programme
Je suis en mesure de mettre le cookie de session à expiration lorsque la session se termine ou dans X secondes, mais je voudrais faire les deux. Par exemple, si un utilisateur a cliqué sur «se souvenir de moi», je souhaite que sa session se termine après X secondes. Par exemple, mon app.rb a une ligne qui ressemble à ceci:
use Rack::Session::Cookie, :expire_after => 2592000, #30 days in seconds
:secret => MY_SECRET
J'ai essayé de faire ce qui suit lorsque l'utilisateur se connecte à:
if (!remember_me)
env['rack.session.options'][:expire_after] = nil
end
Toutefois, cela ne définit pas le cookie valeur.
Est-ce que quelqu'un sait comment régler ceci?
Merci d'avance.
N'oubliez pas que si vous définissez/supprimez ensuite quelque chose dans le hachage de session, le cookie reviendra à la date d'expiration par défaut (c'est-à-dire un cookie de session). Pour le faire persister à travers les changements suivants, vous aurez besoin de stocker un drapeau marquant le statut "se souvenir de moi" dans le hachage de la session elle-même. –