Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 清理Google App Engine中的非过期会话_Python_Google App Engine_Session_Cookies - Fatal编程技术网

Python 清理Google App Engine中的非过期会话

Python 清理Google App Engine中的非过期会话,python,google-app-engine,session,cookies,Python,Google App Engine,Session,Cookies,我正在使用。客户端是一个iOS应用程序,我希望会话在应用程序的生命周期内保持不变(因此会话过期或无效的唯一方式是当用户注销或用户删除应用程序时,否则会话没有过期日期)。我认为我不想使用cookies,因为cookies的寿命很短(或者我应该吗?) 因此,我要做的是创建一个新会话,获取该会话自动生成的SID(会话id,一个随机字符串),然后将该字符串发送回客户端并永久保存在那里。现在,每次用户发送请求时,会话id也会发送过来,我使用此id获取当前会话: # gets the session wit

我正在使用。客户端是一个iOS应用程序,我希望会话在应用程序的生命周期内保持不变(因此会话过期或无效的唯一方式是当用户注销或用户删除应用程序时,否则会话没有过期日期)。我认为我不想使用cookies,因为cookies的寿命很短(或者我应该吗?)

因此,我要做的是创建一个新会话,获取该会话自动生成的SID(会话id,一个随机字符串),然后将该字符串发送回客户端并永久保存在那里。现在,每次用户发送请求时,会话id也会发送过来,我使用此id获取当前会话:

# gets the session with given session id
session = gaesessions.Session(sid = session_id)
首先,这种方法有什么问题吗?有更好的方法吗


现在,当用户注销时,很容易提交一个请求,以使用给定id使会话无效。但是,如果用户删除应用程序,我将无法获得该会话并将其删除。那么我如何清理不再有效的会话呢?

我想知道为什么您需要一个会话。只需将数据存储在数据存储中的某个每个用户对象中。那么就很容易提到那个用户了。我假设您已经存储了会话以外的某种用户数据

但这个答案并不能解决问题,你永远不知道用户是否删除了应用程序,因此你将永远拥有这些用户数据。这与其说是技术问题,不如说是政策问题

如果您确实想删除用户数据,则需要设置某种策略(即,如果您两年未登录,我们将删除您的帐户)。在这种情况下,您的有效期基本上为2年。您需要一个定期运行的cron作业来清除过期的用户(或会话)

顺便说一句,gae会话包括过期会话的示例清理代码,包括一个cron处理程序