Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

152
Visualizações
Django Rest Framework + Serializadores + Vue.js, funcionalidad de restablecimiento de contraseña

Estoy tratando de crear una funcionalidad de restablecimiento de contraseña, pero no puedo encontrar un buen tutorial que explique cómo hacerlo con DRF y Vue.js. Estoy usando serializadores para pasar los datos, por lo que no hay vistas html involucradas. ¿Cuál es la forma más eficiente de crear esa funcionalidad de restablecimiento de contraseña?

Estoy creando nuevos usuarios a través de /api/v1/users/.

La idea es enviar un enlace por correo electrónico que conduzca a ResetPassword.vue (Realmente no entiendo cómo hacerlo, tampoco puedo encontrar un buen tutorial sobre eso) donde el usuario ingresa la nueva contraseña y luego de presionar enviar es redirigido a Iniciar sesión.vue.

Cualquier idea es muy apreciada. ¡Gracias!

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Después de probar e inventar diferentes opciones, logré encontrar una que funciona mejor. Básicamente, si está utilizando el token de autenticación Django Rest Framework, en su base de datos tendrá una tabla que contendrá Clave: (aquí está el token del usuario) y Nombre: (aquí está el nombre del usuario). Entonces, crea una vista que solo tendrá un formulario con entrada de correo electrónico y botón de envío. Recibe el correo electrónico, lo publica con Axios en el backend y aquí está la vista que administrará:

 @api_view(['POST', 'GET']) def your_method_name_that_will_be_in_urls_py(request): if request.method == "POST": serializer = ResetPasswordEmail(data=request.data) if serializer.is_valid(): //Here you get the email from Front-End email = serializer.validated_data['email'] //Here you fin the user that has that email user = User.objects.get(email=email) //Here you get the token of that user token = Token.objects.get(user=user) if user: //Here you pass the context of things above to send them in an email context = { 'email': email, 'username': user, 'token': token } send_mail( 'SUBJECT', render_to_string('emails/reset_password.txt', context), 'COMPANY NAME and No Reply', [email], fail_silently=False, auth_user=None, auth_password=None, connection=None, html_message=None ) serializer.save(token=token, slug=token) return Response(serializer.data, status=status.HTTP_201_CREATED) return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)

Y el serializador como este:

 class ResetPasswordEmail(serializers.ModelSerializer): class Meta: model = ResetPassword fields = ( 'email', )

Además, creé un modelo para ese restablecimiento de contraseña:

 class ResetPassword(models.Model): email = models.CharField(max_length=200, null=True) token = models.CharField(max_length=255, null=True) slug = models.SlugField(max_length=255) def __str__(self): return self.token //This thing creates users personalized link, that they visit and have a enter new password view in Front-End. def get_absolute_url(self): return f'/{self.token}/'

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda