我正在使用allauth在drf中进行身份验证。我能够注册新用户并使用凭据登录。 登录API返回响应如下:
{
"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")
这是我的设置中已安装应用的列表。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',
]
答案 0 :(得分:2)
似乎您正在使用功能视图?如果是这样,您是否向视图中添加了@api_view
装饰器?
如果是,您是否添加了authentication_classes=[TokenAuthentication]
关键字参数?必须使令牌Auth起作用。
可以在settings.py
中设置以下内容:
REST_FRAMEWORK = {
'DEFAULT_AUTHENTICATION_CLASSES': [
'rest_framework.authentication.TokenAuthentication'
]
}