2011-10-03 2 views
0

Je regarde le code source de mochiweb et je vois des nombres qui testent l'heure d'expiration des cookies qui ne ressemblent en rien au comportement du serveur dont j'ai hérité. mochiweb a 111 et 86417 (un jour plus 17 secondes) dans la source, mais il semble que cela ne le fasse que par l'expiration des cookies et que - dans le code de test. (Voir mochiweb_cookies.erl)Comment définir l'heure de déconnexion automatique dans mochiweb?

Le serveur que je regarde est en train de temporiser les utilisateurs en environ 10-15 minutes, mais je ne vois nulle part de code qui définit la valeur du cookie, et je ne vois aucun chemin de code grâce à la source de mochiweb qui me permettrait même de le définir.

Des idées?

+0

La première partie de votre question est assez ambiguë et pas claire. Que recherchez-vous exactement dans mochiweb_cookies.erl ?? –

Répondre

3

Il y a vraiment deux questions ici: "Comment mon application fait-elle l'expiration de la session?" et "Comment définir un cookie avec mochiweb_cookies?" Seul le second peut être raisonnablement répondu sans plus d'informations.

Req:ok("text/plain", 
     [mochiweb_cookies:cookie("session", "my-session-id", [{max_age, 86417}])], 
     "you're logged in!") 

mochiweb_cookies: biscuit/3 retourne une paire {"Set-Cookie", "headervalue"} qui est approprié en tant que valeur dans les arguments des ResponseHeadersmochiweb_request:respond et mochiweb_request:ok.

Il est bien sûr possible de paramétrer les cookies dans mochiweb sans utiliser le module mochiweb_cookies, ce sont juste des en-têtes après tout. Votre application peut définir le cookie en fabriquant à la main l'en-tête, ou un proxy ou un autre service d'application hébergé sous le même domaine peut définir le cookie. Cela étant dit, si possible, vous devriez éviter de vous fier à l'expiration des cookies pour vous déconnecter des utilisateurs. Le max-age est vraiment juste un indice pour que le navigateur arrête d'envoyer le cookie après ce temps. Un navigateur ou un attaquant peut toujours mal se comporter et envoyer le cookie indéfiniment.

Questions connexes