2015-06-12 49 views
0

我想用这个函数request.session.cycle_key()来旋转会话密钥。在文档中,说:cycle_key是否破坏以前的会话?

cycle_key()

创建一个新的会话密钥,同时保留当前会话 data.django.contrib.auth.login()调用此方法以减轻 会话固定。

因此,不说前一届会议是否被销毁。然而,这个事实对于ajax应用程序是至关重要的,因为可能有多个并行请求,因此一个请求可能会破坏(或不是?)以前的会话,而另一个请求尝试访问先前的(已经销毁?)。会话。这可能会导致严重的应用问题。

回答

1

你可以很容易地看到它自己in the source code它。

+0

是否有可能重写此函数,以便它不会破坏以前的会话?我该如何做到这一点(例如在一个视图中,我使用'cycle_key'函数)? – Jacobian

+1

@Jacobian可能只是将当前会话后端进行子类化并设置['SESSION_ENGINE'](https://docs.djangoproject.com/en/1.7/ref/settings/#std:setting-SESSION_ENGINE)。但是如果你自己调用'cycle_key',为什么不直接调用一个私有帮助函数呢?但是,在任何一种情况下,您都需要注意更新的Django版本中的破坏情况:请注意'cycle_key'如何操作私有属性'_session_cache'。 –