Zend Framework 2 会话容器生命周期

Zend Framework 2 session container lifetime

我是 ZF2 的新手,需要更多有经验的用户的建议。 我正在开发一家小商店,我想为会话存储和 cookie 设置不同的生命周期。 例如,当用户登录时,服务器会发送一个有效期为 3 个月的 cookie,并创建有效期为 30 分钟的会话存储记录(用于用户数据)。拥有 cookie 和唯一会话记录的用户可以使用安全数据(例如信用卡号、phone 等)购买商品、评论和查看他们的个人资料。 30 分钟后没有 activity 会话记录必须删除,但必须保留 cookie(cookie 的生命周期必须为 3 个月)。只有 cookie 用户可以发表评论,但不能购买任何东西或查看 his/her 个人资料。 所以我很有趣,我怎么能用 ZF2 实现它? - 据我了解 "remember_me_time" 必须等于 "cookie_lifetime" 或者它们可以更改为不同的值 ?
ZF2 是否有任何标准机制可以在一段时间后为单个用户删除会话存储,或者我必须自己创建这样的机制?

如果您正在使用 ZfcUser(如果您在 ZF2 上进行用户身份验证,您应该这样做)请查看 GoalioRememberMe(https://github.com/goalio/GoalioRememberMe) 模块,它完全符合您的要求寻找(注意:我自己从未真正使用过它,所以我不能保证它的有效性或安全性)

我还建议阅读 this response by Anthony Ferrara (@ircmaxell) 以了解一个有点类似的问题。它包含一些关于你应该做什么和不应该做什么的背景信息,它的要点是:不要试图让 PHP 会话打开那么久,而是使用 "remember me" cookie 并构建为没有活动会话的访问者从记住我的 cookie 中创建一个新会话。