0

是否有内置的方法来销毁Dancer::Session::Cookie在闲置一定分钟后生成的会话 cookie?我注意到,当我重新启动 Nginx 或 Starman 服务器时,它甚至不会破坏会话,这不是我想要的(出于安全原因)。

如果没有内置方法,那么将会话上次活动的时间存储在 SQL 数据库中并在每次操作后更新它是否存在固有的错误?然后,如果超过 15 分钟左右没有更新该条目,则会话 cookie 将被销毁(使用 session->destroy)。这似乎不是最好的解决方案,但也许这是唯一的方法。据我了解,您还可以在 HTTP 标头中手动设置 cookie 过期时间,但这只会破坏客户端的 cookie,对吗?

4

1 回答 1

0

我想你想做相反的事情。

当您生成 cookie 时,使用该expires属性将其设置为“15 分钟”:

https://metacpan.org/pod/Dancer::Cookie#expires

然后每次为该会话做某事时,调用 Dancer::Cookieinit方法:

https://metacpan.org/pod/Dancer::Cookie#init

...刷新cookie(如果您不使用默认路径,请传入路径)。

用户的浏览器应在给定时间后为您过期 cookie。

(我实际上并没有尝试过,但代码暗示它应该可以工作 - init 方法的文档肯定会更清晰)

于 2014-09-23T02:46:30.113 回答