代码之家  ›  专栏  ›  技术社区  ›  sai Rohit

如何在创建用户时在django中散列密码

  •  0
  • sai Rohit  · 技术社区  · 9 月前

    以下是我对django项目的看法。如何散列我的密码

    @api_view(['POST'])
    def register(request):
      data = request.data
      serializer = SignUpSerializers(data=data)
      if serializer.is_valid():
        if not CustomUser.objects.filter(email=data['email']).exists():
          user = CustomUser.objects.create(
            first_name = data['first_name'],
            last_name = data['last_name'],
            email = data['email'],
            username = data['username'],
            password = data['password']
          )
          return Response({
            'details':"User registered sucessfully."
          }, status.HTTP_201_CREATED)
        return Response({
          'error':"Email already exists."
        }, status.HTTP_400_BAD_REQUEST)
      return Response(serializer.errors)
    

    创建用户时使用hasing更好,或者在模型中保存hasing更好

    1 回复  |  直到 9 月前
        1
  •  2
  •   Rohit Gajula    9 月前

    您可以使用make_password对密码进行哈希运算

    from django.contrib.auth.hashers import make_password
    
    @api_view(['POST'])
    def register(request):
      data = request.data
      serializer = SignUpSerializers(data=data)
      if serializer.is_valid():
        if not CustomUser.objects.filter(email=data['email']).exists():
          user = CustomUser.objects.create(
            first_name = data['first_name'],
            last_name = data['last_name'],
            email = data['email'],
            username = data['username'],
            password = make_password(data['password'])
          )
          return Response({
            'details':"User registered sucessfully."
          }, status.HTTP_201_CREATED)
        return Response({
          'error':"Email already exists."
        }, status.HTTP_400_BAD_REQUEST)
      return Response(serializer.errors)