【问题标题】:Set the user session expiry设置用户会话到期
【发布时间】:2018-05-11 02:09:05
【问题描述】:

我需要为 Vapor 2 中的用户会话(或一般的 cookie)设置到期时间,但不知道该怎么做。有人可以帮忙吗?

谢谢, 安迪

【问题讨论】:

  • 您是在使用 Vapor 内置的 SessionsMiddleware 还是在创建自己的 cookie?
  • 我正在使用 SessionMiddleware

标签: swift server-side vapor


【解决方案1】:

Cookie 可以设置为max-age,之后它们就会过期。这是设置用户会话时间限制的最佳方式。

不幸的是,Vapor 的 SessionsMiddleware 不包含对会话 cookie 设置年龄限制的内置支持,但手动创建 SessionsMiddleware 并覆盖 cookieFactory 闭包并不难。

let sessionsMiddleware = try SessionsMiddleware(config.resolveSessions(), cookieName: "my-sessions-cookie-name", cookieFactory: { request in
  return Cookie(
    name: "my-sessions-cookie-name",
    value: "",
    maxAge: 3600,
    httpOnly: true
  )
})

【讨论】:

  • 您是否需要为此添加任何特殊的import 语句?
  • @rustyMagnet import Sessions 应该这样做。请记住,此答案适用于 Vapor 2,它不再是最新的。
  • 我还需要 Cookies 作为导入。有趣的是,我的中间件会验证 cookie 的存在,但不会验证过期或重放的 cookie。
猜你喜欢
  • 2020-02-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多