Аутентификация пользователей в Django

Django поставляется с системой аутентификации пользователя. Она обрабатывает учетный записи пользователей, группы, разрешения и сеансы пользователей на основе файлов cookie. В этом разделе документации объясняется, как работает реализация по умолчанию из коробки, а так же как её расширять и настаивать в соответсвии с требованиями проекта.

Обзор

Система аутентификация Django обрабатывает как аутентификацию, так и авторизацию. Вкратце, аутентификация подтвержадет, что пользователь является тем, за кого он себя выдает, а авторизация определяет, что разрешено делать аутентифицированному пользователю. Здесь, тремин аутентификация, используется для обозначения обеих задач.

Система аутентификации состоит из:

  • Пользователей (Users)
  • Разрешения (Permissions): Двоичные (да/нет) флаги, обозначающие, может ли пользователь выполнять определенную задачу.
  • Групп (Group): Общий способ применения меток и разрешений для более чем одного пользователя.
  • Настраиваемая системя хеширования паролей
  • Формы и инструменты просмотра для авторизованных пользователей, или ограничения контента.
  • Подключаемая система бэкенда

Система аутентификации Django нацелена на то, что бы быть очень общей и не предоставляет некоторые функции, обычно встречающиеся в системах веб-аутентификации. Решение некоторых наиболее распростроненных проблем реализованы в сторонних пакетах.

  • Проверка надежности пароля
  • Ограничение попыток входа
  • Аутентификация через стороние сервисы (например, OAuth)
  • Разрешения на уровне объекта

Установка

Поддержка аутентификации включена в состав дополнительного модуля Django django.contrib.auth. По умолчанию, требуемая конфигурация уже включена в settings.py, сгенерированным командой django-admin startproject. Она состоит из двух пунктов, перечисленных в настройке INSTALLED_APPS:

  1. 'django.contrib.auth' содержит ядро аутентификации фреймворка, и основных ее моделей
  2. django.contrib.contenttypes' это система типов контента Django, которая позволяет привязать разрешения с создаваемыми моделями

и двух элементов в настройке MIDDLEWARE:

  1. SessionMiddleware управляет сессиями между запросами
  2. AuthenticationMiddleware сопоставляет пользователей, с запросами, использующими сеансы.

После установки этих параметров запуск команды manage.py migrate создаются необходимые таблицы БД для моделей аутентификации и разрешения для любых моделей, определенных в установленных приложениях

Использование стандартной реализации аутентификации

Закладка Постоянная ссылка.