首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django Rest框架+ Django-Allauth密码重置/恢复

Django Rest框架+ Django-Allauth密码重置/恢复
EN

Stack Overflow用户
提问于 2014-11-11 16:12:27
回答 2查看 3.2K关注 0票数 6

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

Django-Allauth已经完成了我所需要的一切,我的问题是,我是否可以从DRF调用django-allauth函数或视图,接收我想要重置的电子邮件,并继续正常的allauth流(比如创建临时令牌并将电子邮件发送给客户端)?

如果其中一个应用程序完成了我所需要的所有工作,那么我就不需要重写所有的代码了。只是需要一些关于如何粘合它们的帮助:)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-11-11 16:34:03

我想出来了

我把这个添加到我的DRF资源中

代码语言:javascript
复制
@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)
票数 6
EN

Stack Overflow用户

发布于 2016-04-01 20:51:11

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

代码语言:javascript
复制
from rest_auth.serializers import PasswordResetSerializer
from allauth.account.forms import ResetPasswordForm

class PasswordSerializer (PasswordResetSerializer):
    password_reset_form_class = ResetPasswordForm

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

代码语言:javascript
复制
REST_AUTH_SERIALIZERS = {
    'PASSWORD_RESET_SERIALIZER': 'api.helpers.pwdreset.PasswordSerializer',
}
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26869309

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档