Vapor 2.0 - 会话(Sessions)

前往 Vapor 2.0 - 文档目录

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-sessioncookie被存储下来。

你可能感兴趣的:(Vapor 2.0 - 会话(Sessions))