5

Tôi muốn biết nếu auth.logout xóa phiên dữ liệu hoặc tôi phải tự làm điều đó.Django/Auth: đăng xuất xóa dữ liệu phiên?

from django.contrib.auth.decorators import login_required 
from django.contrib import auth 
@login_required 
def logout(request): 
    auth.logout(request) 
    return redirect('base:homepage') 

Something như thế này ...

from django.contrib.auth.decorators import login_required 
from django.contrib import auth 

@login_required 
def logout(request): 
    for sesskey in request.session.keys(): 
     del request.session[sesskey] 
    auth.logout(request) 
    return redirect('base:homepage') 

Cảm ơn!

+0

thể trùng lặp của (http://stackoverflow.com/questions/12574459/does-the -django-authentication-logout-function-deletes-phiên-hàng-in-django-se) – karthikr

Trả lời

12

Có. Đăng xuất xóa phiên.

Đây là its source: [? Có chức năng django xác thực logout xóa của hàng phiên trong bảng django \ _SESSION]

def logout(request): 
    """ 
    Removes the authenticated user's ID from the request and flushes their 
    session data. 
    """ 
    # Dispatch the signal before the user is logged out so the receivers have a 
    # chance to find out *who* logged out. 
    user = getattr(request, 'user', None) 
    if hasattr(user, 'is_authenticated') and not user.is_authenticated(): 
     user = None 
    user_logged_out.send(sender=user.__class__, request=request, user=user) 

    request.session.flush() 
    if hasattr(request, 'user'): 
     from django.contrib.auth.models import AnonymousUser 
     request.user = AnonymousUser() 
Các vấn đề liên quan