如何在Yesod中禁用特定网址或子网站的会话?

时间:2015-01-31 17:35:39

标签: session haskell yesod

我想禁用无头API端点的会话,但是我必须打开它们,因为此服务还会处理用户登录。

但是makeSessionBackend无法访问Handler内容,甚至无法访问当前的URI,例如isAuthorizedSource

在我看来,我应该解除客户端会话后端代码并将其与包装器一起使用,直到我能从WAI Request获得至少文本路径。

是不是有更好的方法告诉任何bakend忽略某些路线,例如StaticR

1 个答案:

答案 0 :(得分:2)

可以通过覆盖Yesod类型类中的makeSessionBackend方法来修改所有点。像

这样的东西
instance Yesod App where
    makeSessionBackend _ = fmap Just $ defaultClientSessionBackend expireTime filepath
      where expireTime = 24 * 60