美文网首页Metis
Django rest framework获取jwt认证后的用户

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

作者: 万州客 | 来源:发表于2020-11-15 15:13 被阅读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这个字段需要与前端传过来的一致。我试了几次才知道。

    相关文章

      网友评论

        本文标题:Django rest framework获取jwt认证后的用户

        本文链接:https://www.haomeiwen.com/subject/uipnbktx.html