Как разрешить пользователю входить в систему с новым паролем после его сброса
Я пытаюсь создать систему сброса пароля в django. Проблема в том, что я пытаюсь войти в систему после сброса пароля, но система выдает ошибку Invalid credentials. Я использовал пользовательскую модель пользователя, которая принимает имя пользователя в качестве уникального идентификатора. Вот код входа в систему в views.py
def ilogin(request):
if request.method == 'POST':
username = request.POST['username']
password = request.POST['password']
user = authenticate(request, username=username, password=password)
if user is not None:
login(request, user)
messages.success(request, f'Welcome {username}!')
return redirect('index')
else:
if myUser.objects.filter(username=username).exists():
messages.error(request, 'Invalid credentials provided.')
else:
print('eeeeeee')
messages.error(request, f'Account with username "{username}" does not exist. Please create an account.')
return redirect('login') # Redirect back to login page
else:
return render(request, 'user/login.html')
здесь код для сброса пароля:
def password_reset_confirm(request, token):
try:
reset_token = PasswordResetToken.objects.get(token=token)
if not reset_token.is_valid:
messages.error(request, 'This reset link is expired or invalid.')
return redirect('login')
if request.method == 'POST':
new_password = request.POST.get('new_password')
confirm_password = request.POST.get('cofirm_password')
if new_password == confirm_password:
user = reset_token.user
print(user)
user.set_password(new_password)
user.save()
reset_token.is_used = True
reset_token.save()
messages.success(request, 'Your password has been reset successfully.')
return redirect('login')
else:
messages.error(request, 'Password do not match')
return render(request, 'emails/password_reset_confirm.html')
except PasswordResetToken.DoesNotExist:
messages.error(request, 'Invalid password reset link')
return redirect('login')
Я пытаюсь создать систему сброса пароля пользователя по электронной почте в django. Я получаю письмо и все такое. Когда я пытаюсь войти в систему с новым паролем, система не работает.