Функция logout
Функция logout применяется к объекту запроса и выполняет выход текущего аутентифицированного пользователя. Она удаляет идентификатор пользователя из сессии и очищает все данные, связанные с аутентификацией. Функция не возвращает никакого значения, а просто модифицирует состояние сессии. Для корректной работы функции требуется импортировать её из модуля django.contrib.auth.
Синтаксис
from django.contrib.auth import logout
logout(request)
Пример . Использование в представлении
Давайте создадим представление для выхода пользователя из системы и перенаправления на главную страницу:
from django.shortcuts import redirect
from django.contrib.auth import logout
def user_logout(request):
logout(request)
return redirect('home')
Пример . С использованием декоратора
Давайте создадим представление, которое доступно только аутентифицированным пользователям и выполняет выход с последующим перенаправлением на страницу входа:
from django.shortcuts import redirect
from django.contrib.auth import logout
from django.contrib.auth.decorators import login_required
@login_required
def logout_view(request):
logout(request)
return redirect('login')
Пример . С очисткой сессионных данных
Давайте выполним выход пользователя и явно очистим все данные сессии:
from django.shortcuts import redirect
from django.contrib.auth import logout
def clear_logout(request):
logout(request)
request.session.flush()
return redirect('home')
Пример . Использование в шаблоне
Давайте создадим форму выхода, которую можно разместить в шаблоне для выполнения POST-запроса на выход:
from django.shortcuts import redirect
from django.contrib.auth import logout
from django.views.decorators.csrf import csrf_protect
@csrf_protect
def logout_post(request):
if request.method == 'POST':
logout(request)
return redirect('home')
return redirect('home')
А в шаблоне можно разместить следующую форму:
<form method="post" action="{% url 'logout' %}">
{% csrf_token %}
<button type="submit">Выйти</button>
</form>
Смотрите также
-
функция
login,
которая выполняет вход пользователя в систему -
функция
authenticate,
которая проверяет учетные данные пользователя -
декоратор
login_required,
который ограничивает доступ к представлениям -
функция
update_session_auth_hash,
которая обновляет сессию при смене пароля