request.user.is_authenticated 在 Django 休息框架中总是假的

request.user.is_authenticated is always false in Django rest framework

我在 drf 中使用 allauth 进行身份验证。我能够注册新用户并使用凭据登录。 登录 api return 响应如下:

{
 "key" : "<some token>"
}

现在我还有 1 个 API 代码是

    from django.http import HttpResponse
    def lol(request):
        if request.user.is_authenticated:
            return HttpResponse("Authenticated")
        else:
            return HttpResponse("Not Authenticated")

但这总是return未通过身份验证 我的 api 通话看起来像这样

这是我 settings.py

中已安装应用的列表
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'rest_framework',
'rest_framework.authtoken',
'rest_auth',
'django.contrib.sites',
'allauth',
'allauth.account',
'rest_auth.registration',

'api.user',
'api.activity',
]

您似乎在使用功能视图?如果是这样,您是否向视图添加了 @api_view 装饰器?

如果是,您是否添加了 authentication_classes=[TokenAuthentication] 关键字参数?这是使令牌 Auth 工作的必要条件。

或者在 settings.py 中设置以下内容:

REST_FRAMEWORK = {
    'DEFAULT_AUTHENTICATION_CLASSES': [
        'rest_framework.authentication.TokenAuthentication'
    ]
}