【发布时间】:2020-02-25 14:27:51
【问题描述】:
标题几乎说明了一切。我正在尝试使用令牌进行身份验证。我正在从 django 数据库获取信息到我的颤振应用程序。我已成功从 rest_framework 中检索到我的令牌并将其添加到 rest 请求的标头中。我在 django 中打印了这些标题,结果是
{
'Content-Length': '0',
'Content-Type': 'text/plain',
'User-Agent': 'Dart/2.5 (dart:io)',
'Accept-Encoding': 'gzip',
'Authorization': 'Token 10cf58e1402b8e48c1a455aaff7f7bcf53e24231',
'Host': '192.168.0.110:8000'
}
然而,结果是带有登录表单的网页,而不是我请求的其余数据。我错过了什么?
settings.py
...
REST_FRAMEWORK = {
'DEFAULT_AUTHENTICATION_CLASSES': (
'rest_framework.authentication.BasicAuthentication',
'rest_framework.authentication.SessionAuthentication',
'rest_framework.authentication.TokenAuthentication',
),
'DEFAULT_PERMISSION_CLASSES': (
'rest_framework.permissions.IsAuthenticated',
)
}
...
views.py
...
@login_required
@csrf_exempt
def ui_list(request):
print(request.headers)
"""
List all code user_informations, or create a new user_information.
"""
if request.method == "GET":
users = UserInformation.objects.all()
serializer = UserInformationSerializer(users, many=True)
return JsonResponse(serializer.data, safe=False)
elif request.method == "POST":
data = JSONParser().parse(request)
serializer = UserInformationSerializer(data=data)
if serializer.is_valid():
serializer.save()
return JsonResponse(serializer.data, status=201)
return JsonResponse(serializer.errors, status=400)
...
【问题讨论】:
-
您应该收到 401 未经授权的访问,所以问题可能出在 url 或视图上,您能显示更多代码吗?网点是否适用于 REST 客户端或文档?
-
@sebastienbarbier 我已经添加了views.py的相关代码
-
我已经按照 django-rest-framework.org 的教程进行操作,但基于类的视图除外
标签: django authentication django-rest-framework http-token-authentication