- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在使用 django、drf 和 django-rest-auth。我在请求 header 中从前端发送 token
{'Authorization': 'Token {$Token}'}
但是这个请求似乎是未经授权的。我想获取用户信息,例如:
def get_user_info(request):
user = request.user
但它返回给我 AnonymousUser
我的设置.py:
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'core',
'rest_framework',
'rest_framework.authtoken',
'rest_auth',
'account',
'corsheaders'
]
REST_FRAMEWORK = {
'DEFAULT_AUTHENTICATION_CLASSES': (
'rest_framework.authentication.TokenAuthentication'
),
'DEFAULT_PERMISSION_CLASSES': [
'rest_framework.permissions.IsAuthenticated',
],
'UNICODE_JSON': True,
'PAGE_SIZE': 0
}
这是我的请求 header :
POST /auth/check/ HTTP/1.1
Host: localhost:8000
Connection: keep-alive
Content-Length: 0
Pragma: no-cache
Cache-Control: no-cache
Authorization: Token 7d2ee4481ea0e12bd88f46d57e2e6dab3354d4b7
Origin: http://localhost:8080
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36
Content-Type: application/json;charset=utf-8
Accept: application/json, text/plain, */*
Referer: http://localhost:8080/
Accept-Encoding: gzip, deflate, br
Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4
以及带有 header 的完整服务器响应
HTTP/1.1 401 Unauthorized
Date: Thu, 29 Jun 2017 05:28:06 GMT
Server: WSGIServer/0.2 CPython/3.4.4
Access-Control-Allow-Origin: http://localhost:8080
Vary: Origin, Cookie
Content-Type: application/json
X-Frame-Options: SAMEORIGIN
Transfer-Encoding: chunked
{"message": "Unauthenticated"}
我的 View 函数:
@csrf_exempt
def check_auth(request):
if request.method == 'POST':
print(request.user)
if request.user.is_authenticated():
content = {'message': 'Authenticated'}
response = JsonResponse(content, status = 200)
return response
else:
content = {'message': 'Unauthenticated'}
response = JsonResponse(content, status=401)
return response
最佳答案
您没有以正确的方式使用 Django-rest-framework。像这样改变你的看法
class CheckAuth(generics.GenericAPIView):
def post(self, request):
print(request.user)
if request.user.is_authenticated():
content = {'message': 'Authenticated'}
return Response(content, status=200)
else:
content = {'message': 'Unauthenticated'}
return Response(content, status=401)
您可以进一步查看有关 View 的 Django-rest 文档 here .
关于python - django rest auth 返回 AnonymousUser,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44817958/
if not request.user.is_authenticated: return None try: return ClientProfile.objects.get(user
我有以下型号 class Team(models.Model): name = models.CharField(max_length=100) members = models.Ma
我正在创建用户创建的所有帖子的摘要页面,并将这些帖子返回到摘要页面。我得到上面的错误? 它提示这一行: uploaded_aircraft = Aircraft.objects.filter(user
我将 Django 应用程序部署到远程服务器,但 tastypie 无法识别远程服务器上的登录用户。 我有一个 tastypie 资源,可以过滤属于当前登录用户的所有对象: def apply_a
使用 django-socialregistration,出现以下错误: 'AnonymousUser' object has no attribute 'backend' 如何, 我点击 faceb
我有以下输入新用户的注册 View 。 我想让它输入新用户,然后自动登录。 它通过用户记录保存,但在尝试登录时返回此错误: 'AnonymousUser' 对象没有属性 'backend' View
我有一个针对现有基于 spring 的应用程序的 spring 安全实现,无论我在登录页面提供什么,它总是返回匿名用户。 @Configuration @EnableWebSecurity @Enab
已关闭。此问题需要 debugging details 。目前不接受答案。 编辑问题以包含 desired behavior, a specific problem or error, and the
我使用context_processorts.py将某种过滤器传递到整个项目中,但它仅在用户登录时有效,当没有用户登录时它会返回错误。这是我的文件: context_processors.py def
def gmail_authenticate(request): storage = DjangoORMStorage(CredentialsModel, 'id', request.user
我正在测试一个表单 当用户看到表单时,用户可能已登录,也可能是匿名用户 如果表单成功,用户将登录 如果表单失败,用户将保持原样 我想通过单元测试来确认此行为。 django.test.Client 确
我正在尝试在 Django 中创建一个表单,其中包含一个表单字段,该表单字段具有从 User 对象中提取的默认值。 表单.py class EvangelizedForm(forms.ModelFor
我正在尝试找出 request.user 究竟在何处/何时成为 AnonymousUser。我一直在搜索整个 Auth 后端,但我似乎找不到它。我找错地方了吗? 我知道每个未经过身份验证的用户都会成为
我关注了这个tutorial创建自定义用户。在views.py中,我创建了一个通过用户ID(即/users/42)预设用户信息的方法,但结果是AnonymousUser。我应该提到我试图获取的数据库记
我有以下网址: 主要urls.py: url(r'^accounts/profiles/', include('accounts.urls', namespace = 'accounts')), ac
我在我的 Django 应用程序中使用社交登录。因此,我在我的 settings.py 文件中添加了额外的后端。 AUTHENTICATION_BACKENDS = [ 'django.con
我正在使用 Django 2.2 和 DRF 在我的应用程序中,根据用户属性,我需要将 request.user 更改为不同的用户。 class CustomMiddleware: def __i
我一直在测试我的应用程序,陷入了与应用程序本身无关的错误。我有这样的单元测试: class TagSaveAndLoadTest(TestCase): fixtures = ['users.j
我正在努力解决 is_authenticated返回 True当我没有登录时: u = request.user if u.is_authenticated: raise Exception(
在我的 Django 站点中,我计划结合使用 message_set 和一些精美的 UI 来警告用户“您的操作已成功完成”或“您有三条新消息”等内容。 当我尝试警告尝试登录的用户他提供的用户/通行证是
我是一名优秀的程序员,十分优秀!