django - request.user.is_authenticated 在 Django 休息框架中总是假的
问题描述
我在 drf 中使用 allauth 进行身份验证。我能够注册新用户并使用凭据登录。登录 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")
这是我的 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'
]
}
推荐阅读
- android - 数据传递失败 putExtra
- php - 如何通过终端在本地主机上执行 php 文件的 cronjob
- java - 使用 FileInputStream 从相对路径读取文件
- amazon-web-services - 将 ElasticSearch 置于 AWS 上的代理之后?
- java - 如何从 JTextField 获取价值到 JComboBox?
- c - 动态二维数组的 C 结构:对象 0x7ffeee94ab80 的错误:未分配被释放的指针
- excel - 跨列的目标搜索宏扫描
- wordpress - WordPress 主题开发用户定义的图像选择
- java - ArrayList 被覆盖
- c# - 无法理解如何在异步过程中使用 Progress(T) 更新 UI