Metis

Django rest framework获取jwt认证后的用户

2020-11-15  本文已影响0人  万州客

在成熟的应用中,权限的管理不只是基于一个API VIEW或具体的方法作限制,还要基于具体的用户和操作对象及动作,作进一步的授权。所以,在drf的API VIEW中,识别用户就很重要。
在编写代码的过程中,对drf的request和response就要有一定的认主。

1457057-20191224185240847-1859660755.png

一,匹配前端的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这个字段需要与前端传过来的一致。我试了几次才知道。

上一篇下一篇

猜你喜欢

热点阅读