我正在尝试使用 DRF 开发 REST APITokenAuthentication
。这将在 Android 应用程序中使用。
我能够对用户进行身份验证并检索其令牌。我现在遇到的问题是以下视图:
@csrf_exempt
def foo(request):
if request.method == 'GET':
if request.user.is_authenticated():
...
do stuff
...
return HttpResponse(data, "application/json")
else:
return HttpResponse(status=401)
基本上,用户应该经过身份验证才能接收数据,否则,他将收到 401 响应。
我正在向正确的 URL 发出 GET 请求,并在标头中包含以下参数:
content-type : application/json
authorization : Token <user token>
这基本上就是我为其他人做的事情Viewsets(这不是视图集)我有 - 并且它有效。
在这种情况下,它始终发送带有 401 代码的 HTTP 响应(用户未经过身份验证)。
我无法弄清楚问题是否出在我传递的标头值上,或者这是否不是检查用户是否经过身份验证的正确方法。
Edit:如果我这样做:“print request.user”我得到 AnonymousUser
Thanks!
Solved
根据“ABDUL NIYAS PM”的建议,我使用了 APIView
基本上,我只是添加了@api_view(['GET'])视图的装饰器。
@csrf_exempt
@api_view(['GET'])
@permission_classes((IsAuthenticated, ))
def foo(request):
if request.method == 'GET':
...