Django身份验证始终返回None

时间:2018-03-15 09:32:59

标签: django authentication django-rest-framework django-authentication multiple-users

发现了很多关于它的问题然而找不到smth对我有帮助。 Settings.py包含身份验证后端:

function traitement() {
  $.ajax({
    url: "datet.php",
    dataType: 'json',
    data: new Date('traitementD'),
    success: function(traitementD) {
      alert('true');

    },
    error: function() {
      alert('false')
    }
  });
}

和auth用户模型:

AUTHENTICATION_BACKENDS = (
    'django.contrib.auth.backends.ModelBackend',
)

用户模型继承自AbstractUser类:

AUTH_USER_MODEL = 'users.User'

然后有3种类型的用户继承自User。我注册了客户:

class User(AbstractUser):
   <some_fields>

当我通过激活链接激活用户时,一切正常。客户端是经过身份验证的用但是,当我尝试通过登录和密码验证时,始终返回无:

class Client(User, models.Model):
    status = models.CharField(max_length=1, default='C', editable=False)
    <some_fields>

我已经记录了返回所需客户端的qs,用户名和密码也没问题,但身份验证返回无。

我想也许问题是客户端没有正确注册。这是SignUp表单:

class LoginView(APIView):
    def post(self, request):
        qs = User.objects.filter(Q(email=request.data.get('user')) | Q(phone=request.data.get('user')))
        if qs.exists():
            username = qs.first().username
            password = request.data.get('password')
            user = authenticate(username=username, password=password)
            if user is not None:
                login(request, user)
                return Response(CMD(user.id), status=status.HTTP_200_OK)
        return Response({
            'error': 'Invalid login / password',
        }, status=status.HTTP_400_BAD_REQUEST)

0 个答案:

没有答案