[英]Django Rest Framework + Django-Allauth Password Reset/Recovery
我正在嘗試使用Django Rest Framework和Django-Allauth創建密碼恢復流程。
Django-Allauth已經完成了我需要的一切,我的問題是我可以編程調用django-allauth函數或從DRF查看接收我想要重置的電子郵件並繼續其余正常的allauth流程(如創建臨時令牌和將電子郵件發送給客戶端?
如果其中一個應用程序正在執行我需要的任何操作,我就不會重寫所有代碼。 只需要一些關於如何“粘合”它們的幫助:)
萬一它有幫助,只需創建一個新類來覆蓋密碼序列化器,解決了這個問題。
from rest_auth.serializers import PasswordResetSerializer
from allauth.account.forms import ResetPasswordForm
class PasswordSerializer (PasswordResetSerializer):
password_reset_form_class = ResetPasswordForm
然后確保將其添加到您的設置:
REST_AUTH_SERIALIZERS = {
'PASSWORD_RESET_SERIALIZER': 'api.helpers.pwdreset.PasswordSerializer',
}
我想到了
我將此添加到我的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)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.