Vapor文档学习十一:Session

Session可以帮助我们在请求的时候存储用户的相关信息。 只要客户端支持cookie,session就很容易创建。

Middleware

Droplet添加一个SessionMiddleware的实例对象来启用session。

import Sessions

let memory = MemorySessions()
let sessions = SessionsMiddleware(sessions: memory)

然后添加到Droplet

let drop = Droplet()
drop.middleware.append(sessions)

Note:如果你想通过配置文件控制session的启用和关闭,请参考Middleware

Request

SessionMiddleware启用之后,可以通过req.sessions()方法访问session中的数据。

let data = try req.session().data

Example

让我们创建一个存储用户名的示例。

Strore

drop.post("remember") { req in
    guard let name = req.data["name"]?.string else {
        throw Abort.badRequest
    }

    try req.session().data["name"] = Node.string(name)

    return "Remebered name."
}

通过 POST/ remember接口,从请求中获取name,然后存储在 session中。

Fetch

drop.get("remember") { req in
    guard let name = try req.session().data["name"]?.string else {
        return throw Abort.custom(status: .badRequest, message: "Please POST the name first.")
    }

    return name
}

通过GET /remember接口,从session中获取name,并返回。

Cookie

通过使用vapor-sessioncookie 存储session。

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

相关阅读更多精彩内容

友情链接更多精彩内容