美文网首页
Vapor 2.0 - 会话(Sessions)

Vapor 2.0 - 会话(Sessions)

作者: 韩云智VL | 来源:发表于2017-08-14 16:05 被阅读0次

    前往 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)

          本文链接:https://www.haomeiwen.com/subject/cnmurxtx.html