Введение
Предоставляя пользователям возможность создавать учетную запись, которую они могут войти в систему – это общая функция для многих веб-сайтов.
Пользователи могут понадобиться учетную запись для участия в потоке комментариев, сохранить свою личную информацию или передавать деньги. Независимо от того, каким бы ни был использование, вам необходимо создать систему аутентификации, которая проста и безопасна для ваших пользователей.
Прочитав этот пост, вы должны иметь твердое понимание того, как Django думает о аутентификации – от пользователей, к группам, до разрешений. Вы также увидите, как Django играет в безопасности, где он может, чтобы помочь вам избежать непреднамеренного вклад в создание информации ваших пользователей на « Я был Pwned “.
Пользователи
Для большинства веб-сайтов основное предприятие аутентификации является пользователем. Пользователь идентифицируется некоторой уникальной строкой, которая почти всегда является адресом электронной почты или имя пользователя.
Чтобы доказать, что кто-то – это то, кем они говорят, они должны предоставить пароль при создании учетной записи, и снова в любое время, когда они хотят аутентифицировать себя. Это должно быть знакомым: вы проходите через этот вид рабочего процесса в любое время, когда вы зарегистрируетесь на обслуживание, как Twitter или Netflix.
Django предоставляет пользовательскую модель для создания и управления пользователями. Пользователи Django Имейте имя пользователя и пароль, но также могут быть необязательно иметь адрес электронной почты и имя и фамилию:
from django.contrib.auth.models import User rafaela = User('rafaela', password='$uper$ecretpassword') # OR rafaela = User( 'Rafaela', email='rafaela@example.com', password='$upser$ecretpassword', first_name='Rafaela', last_name='Lòpez', )
Если вы предпочитаете идентифицировать пользователей по их адресам электронной почты, я рекомендую заполнить имя пользователя с адресом электронной почты и сохранить адрес в поле электронной почты. Это позволит пользователям аутентифицироваться, используя свой адрес электронной почты, также позволяя вам продолжить использование встроенных функций Django, которые имеют дело с электронной почтой.
Django предоставляет уровень безопасности, когда речь идет о паролях. Он имеет встроенный набор валидаторов паролей, некоторые из которых включены по умолчанию в новых проектах. Вы можете написать свои собственные валидаторы для обеспечения применения любых правил паролей, которые вам могут понадобиться, но выбрать мудро – было показано, что Многие правила пароля приводят к снижению безопасности Действительно
В дополнение к проверке пароля, Django безопасно хранит информацию о пароле по умолчанию. Соли Django и пароли хэшей перед хранением их, когда создан пользователь, так Их plainext Password больше не доступен вне контекста запроса на начальную регистрацию или при входе в систему.
Хранение паролей в открытом тексте является удивительно распространенным надзором в отрасли, поэтому пусть Django будет вашей безопасности здесь!
Как и другие модели, которые вы, возможно, использовали в Django, пользовательские объекты могут быть запрошены и фильтрованы и так далее:
User.objects.filter(first_name='Rafaela')
У пользовательских объектов есть несколько других полей, атрибутов и методов, которые будут иметь смысл в контексте, когда вы читаете о функциях Django, которые включают пользователей.
Узнайте больше о группах, разрешениях и многое другое в Полная статья Действительно
Оригинал: “https://dev.to/easyaspython/learn-the-django-user-authentication-system-36pl”