DRF 前后分离用户注册时密码加密 采用信号量机制

前端分离密码加密

方法一:在Serializer类中重写create方法

# 注册时密码加密

def create(self, validated_data):

    user = super(UserRegSerializer, self).create(validated_data=validated_data)
    user.set_password(validated_data['password'])
    user.save()
    return user

方法二:利用django的信号量机制(采用django内置的用户模型拓展)

在用户app下面 新建一个signals.py文件

from django.db.models.signals import post_save
from django.dispatch import receiver
from rest_framework.authtoken.models import Token

from django.contrib.auth import get_user_model

User = get_user_model()

# 指定User模型
@receiver(post_save, sender=User)
def create_auth_token(sender, instance=None, created=False, **kwargs):
    if created:
        password = instance.password
        instance.set_password(password)  # 密码加密方法
        instance.save()
        # Token.objects.create(user=instance)  已采用JWT方式
 
 


然后在用户app下的apps.py文件里加入


这样就设置完毕,可以打断点测试是否进入信号量文件里面


猜你喜欢

转载自blog.csdn.net/pzl_pzl/article/details/81056185
DRF