Django Rest Framework + Django-Allauth密码重置/恢复

时间:2014-11-11 16:12:28

标签: python django django-rest-framework django-allauth password-recovery

我正在尝试使用Django Rest Framework和Django-Allauth创建密码恢复流程。

Django-Allauth已经做了我需要的一切,我的问题是我可以编程方式调用django-allauth函数或从DRF查看接收我想要重置的电子邮件并继续正常的allauth流的其余部分(如创建临时代币并将电子邮件发送给客户?

如果其中一个应用正在执行我需要的所有操作,我就不会重写所有代码。只需要一些关于如何粘合"他们:))

2 个答案:

答案 0 :(得分:3)

我想通了

我将此添加到我的DRF资源

@list_route(
    methods=['post'], permission_classes=[AllowAny],
    authentication_classes=[NoAuthentication]
)
def recover_password(self, request):
    if request.DATA.get('email'):
        # Lets be smart and reuse django-allauth password recovery system
        form = ResetPasswordForm({'email': request.DATA.get('email')})
        if form.is_valid():
            form.save()
            return Response(status=200)
    return Response(status=400)

答案 1 :(得分:3)

如果有帮助,只需创建一个新类来覆盖密码序列化程序即可解决此问题。

cron

然后确保将其添加到您的设置中:

import os
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "<module>.settings")