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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容