如何在mochiweb中设置自动注销时间?

时间:2011-10-03 21:38:21

标签: erlang mochiweb mochi

我正在查看mochiweb的源代码,并查看测试cookie过期时间的数字,这些数字看起来与我继承的服务器的行为完全不同。 mochiweb在源代码中有111和86417(一天加17秒),但看起来它只通过cookie过期和测试代码中的任何一个。 (见mochiweb_cookies.erl)

我正在查看的服务器在大约10-15分钟内超时用户,但我没有看到任何设置cookie值的代码,也没有看到通过mochiweb源代码的任何代码路径请允许我设置它。

有什么想法吗?

1 个答案:

答案 0 :(得分:3)

这里确实有两个问题:“我的应用程序如何进行会话到期?”和“如何使用mochiweb_cookies设置Cookie?”只有第二个可以在没有进一步信息的情况下得到合理回答。

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

mochiweb_cookies:cookie / 3返回{"Set-Cookie", "headervalue"}对,该ResponseHeaders对适合作为mochiweb_request:respondmochiweb_request:ok的{​​{1}}参数中的值。

当然可以在不使用mochiweb_cookies模块的情况下在mochiweb中设置cookie,毕竟它们只是标题。您的应用程序可能是通过手工设置标头来设置cookie,或者在同一域下托管的代理或其他应用程序服务可能正在设置cookie。

话虽如此,如果可能的话,你应该避免依赖cookie过期来注销用户。 max-age实际上只是浏览器在该时间过后停止发送cookie的暗示。浏览器或攻击者总是行为不端并无限期地发送cookie。