我正在使用gae-sessions。客户端是一个 iOS 应用程序,我希望会话在应用程序的生命周期内持续存在(因此会话过期或无效的唯一方法是用户注销或用户删除应用程序时,否则会话没有过期日期)。我不认为我想使用 cookie,因为 cookie 是短暂的(或者我应该吗?)
所以我正在做的是创建一个新会话,获取为该会话自动生成的 SID(会话 id,一个随机字符串),并将该字符串发送回客户端并将其保存在那里。现在每次用户发送请求时,会话 id 也被发送过来,我使用这个 id 获取当前会话:
# gets the session with given session id
session = gaesessions.Session(sid = session_id)
首先,这种方法有什么问题吗?有一个更好的方法吗?
现在,当用户注销时,很容易提交请求以使具有给定 ID 的会话无效。但是,如果用户删除该应用程序,我将无法获得该会话并删除它。那么我将如何清理不再有效的会话?