首页 > 解决方案 > django rest 中的令牌身份验证失败

问题描述

我可以创建用户模型。但是即使存在具有给定凭据的此类用户,身份验证也总是失败

models.py 的用户创建方法为

@receiver(post_save, sender=settings.AUTH_USER_MODEL)
def create_auth_token(sender, instance=None, created=False, **kwargs):
    if created:
        Token.objects.create(user=instance)

views.py 的登录/身份验证方法为

class ObtainAuthToken(APIView):
    @csrf_exempt
    def post(self, request):
        user = authenticate(
        username=request.data['username'], 
        password=request.data['password'])

        if user:
            token, created = Token.objects.get_or_create(user=user)
            return Response({'token': token.key, 'user': UserSerializer(user).data})

        return Response('Invalid username or passwordee', status=status.HTTP_400_BAD_REQUEST)

在 settings.py

AUTH_USER_MODEL = 'account.User'

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    }
}

settings.py 在这里

REST_FRAMEWORK = {
'DEFAULT_AUTHENTICATION_CLASSES': (

    'rest_framework.authentication.TokenAuthentication',
),
}

这段代码有什么问题?

标签: django-rest-frameworkdjango-rest-auth

解决方案


推荐阅读