1457057-20191224185240847-1859660755.png在成熟的应用中,权限的管理不只是基于一个API VIEW或具体的方法作限制,还要基于具体的用户和操作对象及动作,作进一步的授权。所以,在drf的API VIEW中,识别用户就很重要。
在编写代码的过程中,对drf的request和response就要有一定的认主。
一,匹配前端的Authorization
2020-11-15 15_10_36-Admin _ 任务列表.png
settings.py
JWT_AUTH = {
'JWT_EXPIRATION_DELTA': datetime.timedelta(days=365),
'JWT_AUTH_HEADER_PREFIX': 'Bearer',
'JWT_ALLOW_REFRESH': True,
}
二,在request中获取用户名
class ModelTasksView(APIView):
def get(self, request):
query_param = request.query_params
print(request.user, "@@@@@@@@@@@@")
queryset = ModelTask.objects.all()
serializer = ModelTaskSerializer(queryset, many=True)
return_dict = build_ret_data(OP_SUCCESS, serializer.data)
return render_json(return_dict)
会在console界面看到输出:
sky @@@@@@@@@@@@
有了这个用户名,就可以作进一步的权限控制了。关键在于JWT_AUTH_HEADER_PREFIX这个字段需要与前端传过来的一致。我试了几次才知道。
网友评论