首页 > 解决方案 > 如何从 vue.js 中的请求中获取 DRF 中的 self.request.user?

问题描述

如何从 vue.js 中的请求中获取 DRF 中的 self.request.user?
我的请求来自.vue

async LoadCase() {
    this.case = await fetch(
    `${this.$store.getters.getServerUrl}/casedetail/${this.slug}`
    ).then(response => response.json())
}

我的班级views.py

class DetailCase(RetrieveAPIView):
    queryset = Case.objects.all()
    serializer_class = CaseDetalSerializers
    lookup_field = "slug"

我的班级serializers.py

class CaseDetalSerializers(serializers.ModelSerializer):
    possible_open = serializers.SerializerMethodField()

    class Meta:
        model = Case
        exclude = ("id","slug")

    def get_possible_open(self,case):
        request = self.context.get('request')
        print(request)
        print(request.user)

我从中得到什么print

<rest_framework.request.Request: GET '/api/v1/casedetail/rofl'>
AnonymousUser

现在由于某种原因我得到了 AnonymousUser,我应该得到管理员。我该怎么做才能得到它?

标签: djangovue.jsdjango-rest-framework

解决方案


您好,您应该为您的 API 使用一种身份验证方法来获取用户,否则它将是一个 AnonymousUser 对象。

这是一个简单的 jwt 身份验证示例 https://simpleisbetterthancomplex.com/tutorial/2018/12/19/how-to-use-jwt-authentication-with-django-rest-framework.html


推荐阅读