代码之家  ›  专栏  ›  技术社区  ›  Pankaj Sharma

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

  •  1
  • Pankaj Sharma  · 技术社区  · 6 年前

    在我的Django项目中,我想要一个只在一段时间后销毁的会话,因为我设置了过期时间,但是会话在注销后也会销毁。

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

    我搜索它,但没有找到任何解决方案,任何人帮助我。

    2 回复  |  直到 6 年前
        1
  •  1
  •   ruddra    6 年前

    好吧,你打电话的时候 logout flushes 会议。如果要保留这些数据,则需要定义自己的注销功能。你可以这样做:

    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
    

    供参考 这是一个未经测试的代码。另外,如果您不使用会话来存储应该在注销后持续的数据,可能会更好。您可以为此使用redis或任何临时存储。

        2
  •  0
  •   ans2human    6 年前

    试试这个:

    Views.py

    from django.contrib.auth import logout
    
    def logoutUser(request):
        logout(request)
        messages.success(request,"Successfully logged out")
        return redirect("login")
    
    推荐文章