Рубрики
Без рубрики

Регистрация и аутентификация в приложениях Django с DJ-REST-AUTH

Огромное количество существующих приложений имеет регистрацию и аутентификацию для пользователей. Может быть, каждый де … помеченный Джанго, Python.

Огромное количество существующих приложений имеет регистрацию и аутентификацию для пользователей. Может быть, каждый разработчик в мире реализовал что-то связанное с этим в их работе или в то время как они узнали. После создания Django Rest Framework Разработчики Django начали реализовывать все больше и больше конечных точек API на уровне APP. В результате пакет с открытым исходным кодом под названием DJ-REST-AUTH Было создано для предоставления набора конечных точек API для отдыха для обработки задач регистрации пользователя и аутентификации. В этой статье я расскажу бы не только об этом конкретном пакете, но также даст вам несколько советов, чтобы избежать некоторых из наиболее распространенных проблем, столкнувшихся при настройке его.

Пакет DJ-REST-AUTH

Если вы являетесь разработчиком Django, и вы кодируете API отдыха с аутентификацией, вы найдете пакет DJ-REST-AUTH очень полезным. Этот проект является вилкой из django-red-auth Это больше не поддерживается. Как сказано, DJ-REST-AUTH предоставляет набор конечных точек API для отдыха для управления регистрацией пользователями и аутентификацией. После легкого Установка и настройка У вас будут конечные точки для:

  • Регистрация пользователей с дополнительной активацией.
  • Войти и выйти.
  • Получить и обновить пользовательскую модель Django.
  • Смена пароля.
  • Сброс пароля по электронной почте.
  • Аутентификация в социальных сетях.

Вам не нужно слишком много работать, чтобы иметь те функциональные возможности в вашем приложении. Кроме того, учитывая, что DJ-REST-AUTH – это пакет с открытым исходным кодом, он имеет преимущество в использовании множества программистов, которые могут найти ошибки, предложить и добавлять улучшения и т. Д. Итак, если вы используете DJ-REST-AUTH, вы можете быть уверены, что вы используете код, созданный и поддерживаемый сообществом с открытым исходным кодом.

ПРОБИРАБИЗИРОВАННЫЕ КОНЕЧНОСТИ

Благодаря Django Rest Framework, большинство конечных точек, которые предоставляет DJ-REST-AUTH, представляет собой браубиемые. Это означает, что если вы добавили пакет в ваше приложение Django, вы можете проверить эти конечные точки через браузер. В качестве примера, если вы открываете браузер и поместите URL конечной точки входа в систему, вы увидите что-то подобное:

На изображении выше вы можете ввести имя пользователя, электронную почту и пароль для проверки функциональности входа в систему. Сообщение Метод не допускается не ошибка. Это означает, что ваша конечная точка не позволяет методу получения, но вы можете проверить его сообщение. Этот метод возможен, потому что соответствующая синяя кнопка отображается. Как вы можете видеть, очень полезно очень быстро иметь хороший интерфейс для использования во время кодирования.

Конфигурация

Документированная установка и минимальная конфигурация DJ-Rest-Auth довольно ясна, и я не буду говорить об этом в этом сообщении в блоге. Основная идея этого раздела – рассказать вам о большом наборе возможностей, которые вы можете иметь в своем приложении Django, просто настроив пару параметров. Этот пакет использует Django-Allauth позади, чтобы вы могли воспользоваться всеми Доступные настройки в вашем собственном приложении. Например, вы можете определить эти параметры в вашей конфигурации приложения:

  • Account_email_requiredired (false по умолчанию): Если true, пользователь обязан предоставить адрес электронной почты при регистрации.
  • Account_logout_on_password_change (false по умолчанию) : Если true, пользователи будут автоматически вытеснены, как только они сбросит свой пароль.
  • Account_user_model_email_field (по электронной почте 'по умолчанию) : Имя поля в модели пользователя, содержащее электронную почту.
  • Account_username_requiredired (true по умолчанию) Если true, пользователь обязан ввести имя пользователя при регистрации.
  • Account_email_verification («необязательно» по умолчанию) : Определяет метод проверки электронной почты во время регистрации. Возможности являются одним из обязательный , необязательно или Нет Отказ

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

Примечание:

Чтобы лучше понять примеры в следующих разделах:

  1. Вам нужно следовать шагам монтажа DJ-REST-AUT-AUTH.
  2. Установили Django-Allauth.
  3. Убедитесь, что у вас есть резервы аутентификации в ваших настройках:
AUTHENTICATION_BACKENDS = [
    # allauth specific authentication methods, such as login by e-mail
    'allauth.account.auth_backends.AuthenticationBackend',
    # Needed to login by username in Django admin, regardless of allauth
    'django.contrib.auth.backends.ModelBackend',
]

Настройка

Если вы кодируете API для отдыха с Django и Django Rest Restard, вам может потребоваться настроить функциональные возможности, связанные с регистрацией и аутентификацией. С этими рамками и DJ-REST-AUTH – это довольно просто. Вы можете настроить пользовательскую модель Django, представления, сериализаторы, основные функции и т. Д. Например, давайте определим пользовательскую модель пользователей с уникальным электронным письмом без имени пользователя, с полу и атрибутом номера телефона:

# models.py in the users Django app
from django.db import models
from django.contrib.auth.models import AbstractUser


GENDER_SELECTION = [
    ('M', 'Male'),
    ('F', 'Female'),
    ('NS', 'Not Specified'),
]


class CustomUser(AbstractUser):
    # We don't need to define the email attribute because is inherited from AbstractUser
    gender = models.CharField(max_length=20, choices=GENDER_SELECTION)
    phone_number = models.CharField(max_length=30)

В наших настройках мы должны использовать параметр Django под названием Auth_user_model Указать нашу модель пользователя. Если CustomUser Модель определена в приложении под названием Пользователи Мы должны добавить:

AUTH_USER_MODEL = 'users.CustomUser'

Кроме того, мы должны добавить в наши настройки эти параметры для использования электронного письма в качестве идентификатора пользователя в нашем приложении:

ACCOUNT_AUTHENTICATION_METHOD = 'email'
ACCOUNT_USERNAME_REQUIRED = False
ACCOUNT_EMAIL_REQUIRED = True
ACCOUNT_UNIQUE_EMAIL = True

Кроме того, давайте настроим регистрацию без проверки электронной почты только на данный момент:

ACCOUNT_EMAIL_VERIFICATION = 'none'

Я поговорю о проверке аккаунта позже. Теперь нам нужно добавить наш пользовательский сериал для определения двух добавленных атрибутов и использовать их в регистрации. Пользовательский регистр сериализатор должен быть дочерним классом одного имени Регистрриализатор что DJ-Rest-auth предоставляет. Также мы должны перезаписать метод сохранения, чтобы установить эти значения, которые пришли в запрос:

# serializers.py in the users Django app
from django.db import transaction
from rest_framework import serializers
from dj_rest_auth.registration.serializers import RegisterSerializer

from users.models import GENDER_SELECTION


class CustomRegisterSerializer(RegisterSerializer):
    gender = serializers.ChoiceField(choices=GENDER_SELECTION)
    phone_number = serializers.CharField(max_length=30)

    # Define transaction.atomic to rollback the save operation in case of error
    @transaction.atomic
    def save(self, request):
        user = super().save(request)
        user.gender = self.data.get('gender')
        user.phone_number = self.data.get('phone_number')
        user.save()
        return user

Теперь мы не можем забыть рассказать DJ-Rest-Auth, чтобы использовать недавно созданный сериализатор. Давайте добавим CustomGisterSerializer к настройкам:

REST_AUTH_REGISTER_SERIALIZERS = {
    'REGISTER_SERIALIZER': 'users.serializers.CustomRegisterSerializer',
}

После этого, если мы отправимся на конечную точку регистрации, мы бы увидим что-то подобное:

Имя пользователя появляется в конечной точке ROWSBASE, но благодаря конфигурации вы можете оставить его пустым. И это все! Мы добавили индивидуальную регистрационную конечную точку в наше приложение Django. Теперь мы можем создавать пользователей по электронной почте, полу и номеру телефона и сделать некоторые тесты вокруг функциональности входа в систему.

Использование JWT.

Когда приложение управляет аутентификацией, хорошая и стандартная реализация аутентификации по авторизации токена использует JWT (JSON WEB TOKENS) . Jwts – это хороший способ надежно передавать информацию между сторонами, потому что их можно подписать, что означает, что вы можете быть уверены, что отправители о том, кем они говорят. Мы можем легко настроить наше приложение Django для использования JWT. Сначала нам нужно установить djangorestframework-simplejwt :

pip install djangorestframework-simplejwt

Затем добавьте в настройки:

REST_FRAMEWORK = {
    'DEFAULT_AUTHENTICATION_CLASSES': (
        'dj_rest_auth.jwt_auth.JWTCookieAuthentication',
    ),
}

REST_USE_JWT = True
JWT_AUTH_COOKIE = 'my-app-auth' # The cookie key name can be the one you want

И мы хороши, чтобы пойти! У нас есть приложение, которое управляет аутентификацией с JWT.

Конечная точка пользователя

Если вам нужно изменять или просто получить информацию о аутентифицированном пользователю; Вы можете использовать конечную точку, предоставляемую DJ-REST-AUTH: dj-red-auth/user/user/ . Это очень полезная конечная точка зрения в том случае, вы хотите, чтобы пользователь мог изменить свою информацию. Что произойдет, если вы настроили модель пользователя Django? Что ж, в этом случае вам необходимо перезаписать пользователя Serializer, чтобы иметь возможность увидеть и обновлять свои добавленные атрибуты. Давайте продолжим пример индивидуальной модели с полу и номером телефона. В этом случае нам необходимо сказать DJ-Rest-auth, чтобы использовать настроенный сериализатор, уже созданный ( customerregisterSerializer ) Как подробный сериализатор пользователя, добавляя это в настройки:

REST_AUTH_SERIALIZERS = {
    'USER_DETAILS_SERIALIZER': 'users.serializers.CustomRegisterSerializer',
}

С этим определением мы можем получить и обновлять пол и телефон_number из аутентифицированного пользователя с именованной конечной точкой. Скажем сейчас, что наше приложение позволяет получить только пол обновления после регистрации. В CustomGisterSerializer Номер телефона может быть изменен, конечно, потому что мы хотим, чтобы пользователь добавил это значение в момент регистрации. Мы можем определить, что другой сериализатор, который не позволяет модифицировано номеру телефона. Давайте назовем это CustomUserDetailserializer и добавьте его в тот же файл, который есть CustomGisterSerializer. :

# serializers.py in the users Django app
...

from users.models import CustomUser

...

class CustomUserDetailsSerializer(serializers.ModelSerializer):

    class Meta:
        model = CustomUser
        fields = (
            'pk',
            'email',
            'phone_number',
            'gender',
        )
        read_only_fields = ('pk', 'email', 'phone_number',)

Тогда мы должны добавить это как правильные детали пользователя Serializer в наших настройках, замена CustomGisterSerializer С новым:

REST_AUTH_SERIALIZERS = {
    'USER_DETAILS_SERIALIZER': 'users.serializers.CustomUserDetailsSerializer',
}

И это то, что вы увидите в конечной точке пользователя:

Как вы можете видеть на рисунке, единственное значение, которое можно модифицировать, является пол.

Зарегистрироваться с проверкой электронной почты

Можно настроить проверку электронной почты в данный момент, когда пользовательские регистры. Это означает, что успешно зарегистрированный пользователь должен проверить почтовый ящик и подтвердить через полученное письмо, что он действительно является владельцем учетной записи электронной почты. Для этого перейдите к вашим настройкам и включите проверку электронной почты:

# Your settings file
...

ACCOUNT_EMAIL_VERIFICATION = 'mandatory'

С этим после правильного регистрации ваше приложение отправит электронное письмо с подтверждением введенной учетной записи. Но вы не закончили: как DJ-REST-AUTH Документация Говорит, после включения проверки электронной почты необходимо добавить путь к вашим URL-адресам, которые будут использоваться представление о проверке:

# Your urls file
...
from dj_rest_auth.registration.views import VerifyEmailView

...

urlpatterns = [
    ...
    path(
        'dj-rest-auth/account-confirm-email/',
        VerifyEmailView.as_view(),
        name='account_email_verification_sent'
    ),
    ...
]

Если вы этого не сделаете, вы получите Noreversematch ошибка. Кроме того, давайте будем использовать конфигурацию Django-Allauth для активации учетной записи электронной почты после того, как пользователь нажимает на ссылку, полученную в электронной почте. Добавьте это в ваши настройки:

# Your settings file
...
ACCOUNT_CONFIRM_EMAIL_ON_GET = True

И добавьте этот путь к файлу URL-адреса до определение DJ-REST-AUTH Путь регистрации:

# Your urls file
...
from dj_rest_auth.registration.views import VerifyEmailView, ConfirmEmailView

...

urlpatterns = [
    ...
    path(
        'dj-rest-auth/registration/account-confirm-email//',
        ConfirmEmailView.as_view(),
    ), # Needs to be defined before the registration path
    path('dj-rest-auth/registration/', include('dj_rest_auth.registration.urls')),
    path('dj-rest-auth/account-confirm-email/', VerifyEmailView.as_view(), name='account_email_verification_sent'),
    ...
]

Этот путь должен быть там, чтобы избежать ошибки шаблона в DJ-REST-AUTH. Как уже упоминалось, DJ-REST-AUTH – это программное обеспечение с открытым исходным кодом, а иногда мы можем найти некоторые ошибки. Хорошо это то, что любой может обратиться к обнаруженным ошибкам. Имея эту конфигурацию, пользователь будет перенаправлен на страницу входа после нажатия в полученную ссылку. Не забудьте установить Login_url Параметр в ваших настройках, в противном случае вы можете получить ошибку, если значение по умолчанию не является действительным URL вашего приложения. Во время разработки вы можете установить Login_url как конечная точка входа; Помните, что DJ-REST-AUTH имеет просмотр конечных точек благодаря Django Read Framework. Таким образом, вы можете проверить поток регистрации по настройке, например:

# Your settings file
...
LOGIN_URL = 'http://localhost:8000/dj-rest-auth/login'

Наконец, вам нужно указать Django по электронной почте, который отвечает за отправку электронных писем вашего приложения.

Электронная почта

Django Email Backend это компонент, который обрабатывает отправку электронной почты. Вы можете выбрать среди различных возможностей, которые Django предоставляет. Наиболее распространенные являются SMTP и консоль.

Вы можете настроить SMTP-сервер, добавив:

# Your settings file
...

EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'your.email.host'
EMAIL_USE_TLS = True
EMAIL_PORT = 587
EMAIL_HOST_USER = 'your email host user'
EMAIL_HOST_PASSWORD = 'your email host password'

Вы должны выбрать Email_host , например 'smtp.gmail.com' Отказ В Email_host_user и Email_host_password Параметры Поместите информацию о учетной записи, которая будет отправитель электронной почты. Если вы используете Gmail в качестве почтового сервера, вам нужно будет разрешить менее безопасные приложения и отображать разблокировать CAPTCHA. После этого ваше приложение Django отправит подтверждение электронных писем для всех новых пользователей. Я рекомендую вам использовать переменные среды, чтобы сохранить конфиденциальную информацию в ваших настройках, таких как клавиши, учетная запись электронной почты и его пароль и т. Д. В реальных приложениях Лучший способ сделать это интегрировать с электронной почтой, такой как Sendgrid Отказ

Во втором варианте вы можете локально проверить функцию регистрации во время разработки, настроив:

# Your settings file
...
EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend'

В этом случае электронное письмо отправляется и получено консолью. Поэтому после успешной регистрации вы увидите в консоли что-то вроде этого:

Если вы откроете свой браузер и перейдите на ссылку, отображаемую в печатном электронном письме, учетная запись пользователя будет активирована, и вы будете перенаправлены на Логин_url. . Теперь вы можете войти в систему с введенным электронным письмом и паролем. И там это! Вы настроили регистрацию с проверкой электронной почты. Давайте посмотрим, как настроить электронные письма, которые отправляют ваше приложение.

Шаблоны электронной почты

Django Allauth предлагает несколько шаблонов, которые используются DJ-Rest-Auth в момент отправки электронных писем. Как показано в предыдущем разделе, электронная почта для проверки, напечатанная в консоли, имеет шаблон, определенный пакетом Django-Allauth. Можно настроить эти шаблоны электронной почты, перезаписывая пару файлов. Прежде всего, давайте создадим Шаблон Папка в вашей главной папке приложения Django. Отныне давайте предположим, что имя вашей главной папки приложения Django – MyApp ; Так что вам нужно добавить это в свой Шаблоны настройки:

# Your settings file
...
import os
...

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [
            os.path.join(BASE_DIR, 'myapp/templates'), # Add this inside the DIRS list
        ],
        'APP_DIRS': True,
        ...
    },
]

Теперь вы должны перезаписать соответствующие файлы шаблонов для нужной настройки. В этом случае путь, используемый DJ-REST-AUTH, будет MyApp/шаблоны/аккаунт/электронная почта/ Отказ Там вы можете добавить эти файлы, чтобы перезаписать те, которые используются по умолчанию:

  • email_confirmation_message.txt.
  • email_confirmation_signup_message.txt.
  • email_confirmation_signup_subject.txt.
  • email_confirmation_subject.txt.

Например, чтобы настроить сообщение о подтверждении электронной почты, вы должны создать email_confirmation_message.txt Файл в MyApp/шаблоны/аккаунт/электронная почта/ Отказ Вы можете даже использовать некоторые из содержимого файла по умолчанию, который вы можете найти в Github Repository Django-Allauth Отказ Кроме того, вы можете установить значение для Account_email_subject_prefix. Параметр в ваших настройках, чтобы добавить префикс на темы в электронные письма вашего приложения. Важно сказать, что в шаблонах электронной почты есть некоторые переменные, которые необходимы, и вы должны держать их в случае, если вы перезаписываете файлы. Например, это файл email_confirmation_message.txt :

{% load account %}{% user_display user as user_display %}{% load i18n %}{%
autoescape off %}{% blocktrans with site_name=current_site.name
site_domain=current_site.domain %}Hello from {{ site_name }}! You're receiving
this e-mail because user {{ user_display }} has given your e-mail address to
register an account on {{ site_domain }}. To confirm this is correct, go to {{
activate_url }} {% endblocktrans %} {% blocktrans with
site_name=current_site.name site_domain=current_site.domain %}Thank you from {{
site_name }}! {{ site_domain }}{% endblocktrans %} {% endautoescape %}

Там у вас есть Activate_url. Это ссылка для подтверждения пользователя. Итак, вы можете удалить, например Название сайта Если вы хотите (или изменить его, чтобы показать другой) Но вам определенно нужно держать Activate_url ценность. В противном случае зарегистрированные пользователи не смогут активировать свои учетные записи. Суммируя этот раздел, если вы решите перезаписать email_confirmation_message.txt. Ваша структура проекта будет выглядеть так:

root-project-folder
    |__myapp
    |    |__templates
    |        |__account
    |            |__email
    |                |__email_confirmation_message.txt
    |
    ...

Теперь давайте посмотрим о функциональности сброса пароля и как настроить его.

Сброс пароля

Если вы хотите иметь функцию сброса пароля в вашем приложении, вы можете сделать это очень легко с DJ-REST-AUTH. Первое, что нужно сказать, это то, что по умолчанию вы не можете проверить его как конечную точку просмотре, потому что она покажет Noreversematch ошибка. Таким образом, вам нужно добавить этот путь к файлу URL-адреса:

# Your urls file
...
from dj_rest_auth.views import PasswordResetConfirmView
...

urlpatterns = [
    ...
    path(
        'rest-auth/password/reset/confirm///',
        PasswordResetConfirmView.as_view(), name='password_reset_confirm'
    ),
]

И теперь вы хотите пойти! Вы можете проверить конечную точку просмотре, которая получает электронную почту зарегистрированного пользователя, а DJ-REST-AUTH отправляет инструкции для сброса пароля. Вам нужен, конечно, настроил бэкэнд электронной почты. Вы можете изменить шаблон электронной почты для функции сброса пароля. Предполагая, что вы уже настроили Шаблоны Папка Как и в предыдущем примере раздела, вы можете создать файл в MyApp/Шаблоны/Регистрация/ называется password_reset_email.html Перезаписать тот, который используется по умолчанию. Почему вы должны определить это там? Потому что это Путь по умолчанию используется Django . Вы можете даже использовать код файла по умолчанию, который выглядит так:

{% load i18n %}{% autoescape off %} {% blocktranslate %}You're receiving this
email because you requested a password reset for your user account at {{
site_name }}.{% endblocktranslate %} {% translate "Please go to the following
page and choose a new password:" %} {% block reset_link %} {{ protocol }}://{{
domain }}{% url 'password_reset_confirm' uidb64=uid token=token %} {% endblock
%} {% translate 'Your username, in case you've forgotten:' %} {{
user.get_username }} {% translate "Thanks for using our site!" %} {%
blocktranslate %}The {{ site_name }} team{% endblocktranslate %} {%
endautoescape %}

Как сказано в разделе проверки электронной почты, не забудьте сохранить некоторые из необходимых переменных в шаблоне. В этом случае наиболее важным является URL с UID и токен которые необходимы для обновления пароля пользователя. После этих шагов вы закончили настройку функциональности сброса пароля! Принимая во внимание предыдущий раздел, ваша папка Project будет теперь такой:

root-project-folder
    |__myapp
    |    |__templates
    |        |__account
    |        |   |__email
    |        |        |__email_confirmation_message.txt
    |        |__registration
    |            |__password_reset_email.html
    |
    ...

Давайте посмотрим в последнем разделе, как мы можем изменить некоторые из переменных по умолчанию, используемые в шаблонах.

Настроить переменные, используемые в шаблонах

Давайте подумаем об этом примере: что, если вы хотите изменить URL-адрес, отправленный по умолчанию в шаблоне электронной почты сброса пароля? Ну, Django позволяет определять переменные, которые будут использоваться в шаблонах, создавая свои собственные теги шаблона. Первое, что вам нужно сделать, это определить пользовательское значение, желаемое для URL в ваших настройках:

# Your settings file
...
CUSTOM_PASSWORD_RESET_CONFIRM = 'desired URL'

Тогда вы должны создать два файла под MyApp/Templatetags/ : Нужно быть пустым __init__.py Файл и другой регистры и получает теги. Давайте назовем это Password_reset_template_load.py. :

from django import template
from django.conf import settings

register = template.Library()


@register.simple_tag
def get_settings_var(name):
    return getattr(settings, name)

Наконец, перейдите в свой индивидуальный шаблон электронной почты, который вы создали, чтобы перезаписать один по умолчанию, и загрузите определенное значение, добавив {% load password_reset_template_load%} в верхней части файла, а после этого добавьте строку, которая имеет пользовательское значение (в этом конкретном случае не забывайте UID и токен ):

// Your template {% load password_reset_template_load %} ... {% get_settings_var
'CUSTOM_PASSWORD_RESET_CONFIRM' %}?uidb64={{ uid }}&token={{ token }}

С этими настройками вы определили свои пользовательские теги шаблона. Я собираюсь показать вам финальную структуру проекта со всей настройкой, о которой я говорил:

root-project-folder
    |__myapp
    |    |__templates
    |    |   |__account
    |    |   |   |__email
    |    |   |        |__email_confirmation_message.txt
    |    |   |__registration
    |    |       |__password_reset_email.html
    |    |__templatetags
    |        |__password_reset_template_load.py
    ...

Отныне электронная почта для сброса пароля покажет индивидуальный URL. Помните, что это был пример, вы можете создать любой нужный тег шаблона и использовать его в любом шаблоне.

Примечания

  1. Если во время попытки этого у вас есть ошибка, которая показывает Запрос соответствия сайта не существует. Вы можете решить это, добавив Site_id к вашим настройкам.
  2. Когда вы создаете свои собственные Templatetags, убедитесь, что основное приложение добавлено в Stall_apps Список в ваших настройках.

Резюме

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

Оригинальный блог на Rootstrap

Оригинал: “https://dev.to/rootstrap/registration-and-authentication-in-django-apps-with-dj-rest-auth-4l6a”