Django logout(redirect to home page) .. Delete cookie?

后端 未结 3 828
死守一世寂寞
死守一世寂寞 2020-12-25 13:56

I redirect the user to the home page after logout. In between I would like to delete all/or specific client cookies (I have previously set).

def logoutuser(r         


        
相关标签:
3条回答
  • 2020-12-25 14:19

    according to http://docs.djangoproject.com/en/dev/topics/auth/#django.contrib.auth.logout

    Changed in Django 1.0: Calling logout() now cleans session data.

    0 讨论(0)
  • 2020-12-25 14:36

    Like jobscry said, logout() cleans session data, but it looks like you have set your own cookies too.

    You could wrap auth logout view, which will return an HttpResponse:

    def logout_user(request):
         response = logout(request, next_page=reverse('app.home.views.home'))
         response.delete_cookie('user_location')
         return response
    

    Or if you're just using the logout method as opposed to the view, you can use the return value for the redirect() method you have [which I assume returns an HttpResponse too].

    def logout_user(request):
         logout(request)
         response = redirect('app.home.views.home')
         response.delete_cookie('user_location')
         return response
    
    0 讨论(0)
  • 2020-12-25 14:38

    Hope this helps: delete cookie when caling "/clear-cookies"

    location.href = '/clear-cookies';
    

    1. Define a method in views.py:

    def clear_cookies(request):
    response = HttpResponseRedirect('/')
    response.delete_cookie('_gat', domain='example.com')
    response.delete_cookie('_ga', domain='example.com')
    response.delete_cookie('_gid', domain='example.com')
    return response
    
    1. Add the path and method to your urls.py

      url(r'^clear-cookies', clear_cookies),

    0 讨论(0)
提交回复
热议问题