Sessions帮助您在请求之间存储有关用户的信息。只要客户端支持cookies,会话(Sessions)很容易创建。
中间件(Middleware)
Droplet通过添加"sessions"到您的中间件数组来启用会话。
Config/droplet.json
{
...,
"middleware": [
...,
"sessions",
...,
],
...,
}
默认情况下,将使用内存会话驱动程序。你也可以用droplet.sessions
键改变它。
Config/droplet.json
{
...,
"sessions": "memory",
...,
}
请求(Request)
SessionMiddleware
启用后,您可以通过req.assertSession()
方法访问会话。
import Sessions
let session = try req.assertSession()
print(session.data)
示例(Example)
让我们创建一个记住用户名的示例。
存储(Store)
drop.post("remember") { req in
guard let name = req.data["name"]?.string else {
throw Abort(.badRequest)
}
let session = try req.assertSession()
try session.data.set("name", name)
return "Remebered name."
}
在POST /remember
中,从请求输入中获取一个name
,然后将这个名称存储到会话数据中。
获取(Fetch)
在GET /remember
中,从会话数据中获取name
并返回它。
drop.get("remember") { req in
let session = try req.assertSession()
guard let name = session.data["name"]?.string else {
return throw Abort(.badRequest, reason: "Please POST the name first.")
}
return name
}
Cookie
会话将通过使用vapor-session
cookie被存储下来。
网友评论