【发布时间】:2021-05-12 09:30:27
【问题描述】:
我正在开发一个 Vapor 后端,我希望为单次条目创建会话。客户端应要求创建会话,后端将返回客户端可以使用的会话 ID。
这是大纲:
// routes.swift
func routes(_ app: App) throws {
app.post("create_room") { req -> BaseResponse<CreateRoomResponse> in
let roomName = try req.content.decode(CreateRoomRequest.self).name
let roomId = "ABCD"
// Create a session, store credentials...
...
return CreateRoomResponse(status: .ok, payload: roomId)
}
}
现在,我正在尝试找出将会话数据和 ID 存储在何处以供以后使用,并在 x 一段时间后可能会被破坏。
我已经阅读了有关授权和会话的 Vapor 文档,但找不到适合我需要的东西,或者至少不是以我可以直观地实现的方式,因为我的后端编程经验不是很好。
我将如何实施这样的会话?我在哪里存储凭据以及以后如何访问它们?
提前非常感谢!
【问题讨论】:
-
我将数据存储在会话数据字典中。通常,这会一直持续到会话结束,如您所料。但是,我还使用了一个自定义中间件,该中间件在指定时间段后记录会话。这能满足你的需要吗?
-
@Nick 是的,这正是我所需要的。我设法弄清楚如何将数据存储在
session.data中,但如果您能向我展示一个示例,说明如何在指定时间段后使用您提到的自定义中间件销毁会话,我将不胜感激。谢谢!
标签: swift vapor server-side-swift