Django创建注销后不会销毁的会话

2024-04-06

在我的 django 项目中,我想要一个仅在特定时间后销毁的会话,因为我设置了过期时间,但会话在注销后也会销毁。

基本上我想要的会议是不受任何登录/注销活动的影响。

我搜索了但没有找到任何解决方案,任何人都可以帮助我。


好吧,当你打电话时logout, it flushes https://docs.djangoproject.com/en/2.1/topics/http/sessions/#django.contrib.sessions.backends.base.SessionBase.flush会议。如果您想保留该数据,那么您需要定义自己的注销功能。你可以这样尝试:

from django.contrib.auth import logout

def logout(request):
    your_data = request.session.get('your_key', None)
    current_expiry = request.session.get('_session_expiry')
    logout(request)
    if your_data:
        request.session['your_key'] = your_data
        if current_expiry:
           request.session['_session_expiry'] = current_expiry

FYI它是未经测试的代码。另外,如果您不使用会话来存储注销后应持续存在的数据,也许会更好。您可以为此使用 redis 或任何临时存储。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Django创建注销后不会销毁的会话 的相关文章

随机推荐