У меня есть регистрация пользователя, когда учетная запись пользователя активируется после нажатия на ссылку с токеном, отправленной на его адрес электронной почты. Я хочу, чтобы истечь ссылка и удалить свои данные из базы данных, если конкретная ссылка не была нажата в течение 24 часов.
Я прочитал в одном месте, что срок действия ссылки истек через 48 часов, это правильно?
Вот мой вопрос -
Как я могу автоматически удалить тех пользователей, которые не нажимают на ссылку активации в течение 24 часов?
(Пока я могу это сделать, зайдя в админ-панель и проверив, подтвержден ли email или нет)
Вот моя функция активации,
def activate(request, uidb64, token):
try:
uid = force_text(urlsafe_base64_decode(uidb64))
user = User.objects.get(pk=uid)
except (TypeError, ValueError, OverflowError, ObjectDoesNotExist):
user = None
if user is not None and account_activation_token.check_token(user, token):
user.is_active = True
user.email_confirmed = True
user.save()
login(request, user)
return redirect('home')
else:
return render(request, 'user/account_activation_invalid.html')
Это мой tokens.py для создания токена,
from django.contrib.auth.tokens import PasswordResetTokenGenerator
from django.utils import six
class AccountActivationTokenGenerator(PasswordResetTokenGenerator):
def _make_hash_value(self, user, timestamp):
return (
six.text_type(user.pk) +
six.text_type(timestamp) +
six.text_type(user.email_confirmed)
)
account_activation_token = AccountActivationTokenGenerator()
Что я должен изменить, чтобы достичь этого?