DJANGO ПОДТВЕРЖДЕНИЕ РЕГИСТРАЦИИ ПО EMAIL

Для обеспечения безопасности ресурса и подтверждения идентификации пользователей многие сайты и веб-приложения требуют подтверждения регистрации по email. Django позволяет легко реализовать такой функционал.

Для отправки писем по электронной почте в Django используется модуль django.core.mail. Представим, что после регистрации новый пользователь должен получить письмо со ссылкой для подтверждения email-адреса:

from django.core.mail import send_mail
from django.shortcuts import render, redirect
from django.template.loader import render_to_string
from django.contrib.auth.tokens import default_token_generator
from django.utils.encoding import force_bytes
from django.utils.http import urlsafe_base64_encode
from django.contrib.auth import get_user_model
from django.contrib.auth.decorators import login_required
from django.contrib.sites.shortcuts import get_current_site
from django.urls import reverse
from django.conf import settings

User = get_user_model()

@login_required
def send_confirmation_email(request):
current_site = get_current_site(request)
subject = 'Подтвердите регистрацию на сайте {}'.format(current_site)
message = render_to_string('registration/confirmation_email.html', {
'user': request.user,
'domain': current_site.domain,
'uid': urlsafe_base64_encode(force_bytes(request.user.pk)),
'token': default_token_generator.make_token(request.user),
})
send_mail(subject, message, settings.DEFAULT_FROM_EMAIL, [request.user.email], fail_silently=False)
return redirect(reverse('registration_email_sent'))

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

How to Create a Login System in Python using Django -- User Registration and Login Authentication

djoser регистрация, авторизация, отправка email с подтверждением - Django Rest Framework урок 11

Django Собственная модель пользователя. Авторизация через email

Django SignUp With Email Confirmation -- OTP Verification with Email in Django

Верификация email при регистрации пользователя verification email in django

🛑 Send email using Django - How To Send Email With Django - 2022

BLGPG-27E33E6E02E8-24-11-23-19

Новые материалы: