我正在创建一个端点,在该端点中,用户输入电话号码并可以在请求中使用令牌登录,但是它总是返回该错误
“ non_field_errors”:[ “无法使用提供的凭据登录。”
请注意,我正在使用自定义用户模型继承自Abstract baseUser
我需要知道如何解决此问题... 提前致谢 这是我的代码:
serializers.py
--set aws.subnets="{subnet-123456,subnet-654321}"
views.py:
class TokenSerializer(serializers.Serializer):
phone_number = serializers.CharField(required=True, allow_blank=False)
def validate(self, attrs,):
phone_number = attrs.get('phone_number')
if phone_number:
user = authenticate(request=self.context.get('request'),
phone_number=phone_number)
if not user:
msg = _('Unable to log in with provided credentials.')
raise serializers.ValidationError(msg, code='authorization')
else:
msg = _('Must include "Phone number.')
raise serializers.ValidationError(msg, code='authorization')
attrs['user'] = user
return attrs
settings.py:
class TokenView(APIView):
serializer_class=TokenSerializer
def post(self, request, *args, **kwargs):
serializer = self.serializer_class(data=request.data,
context={'request': request})
serializer.is_valid(raise_exception=True)
user = serializer.validated_data['user']
token, created = Token.objects.get_or_create(user=user)
login(request,user)
return Response({
'token': token.key,
'user_id': user.pk,
'phone': user.phone_number
})
感谢您的帮助