如何使用Yesod在会话终止时运行代码?

问题描述

每当Yesod会话结束时,我都想运行代码。例如,每当会话结束时,我都希望在控制台上打印“ hello”。

我没有在我的应用程序中使用脚手架。

解决方法

Yesod的默认会话使用clientsession完成。这是通过将加密的数据存储在浏览器的Cookie中来实现的-服务器不存储任何状态。因此,我认为没有办法实现您想要的。

您可以切换到某种服务器存储的会话,在这种情况下,您可以根据会话过期进行 kinda 操作,尽管您永远无法检测到“用户清除了他们的Cookie”,从而有效地终止了会话。