Python 使用Django GraphQL JWT和Graphene Relay进行身份验证和授权

Python 使用Django GraphQL JWT和Graphene Relay进行身份验证和授权,python,django,graphql,jwt,relay,Python,Django,Graphql,Jwt,Relay,我想问一下如何使用Graphen Relay和Django JWT对特定用户(所有者)进行身份验证和查询标记。 这是我的模型: class Tag(models.Model): """Tag to be used for a objective""" name = models.CharField(max_length=255) user = models.ForeignKey( settings.AUTH_USER_MODEL, related_name='tag',

我想问一下如何使用Graphen Relay和Django JWT对特定用户(所有者)进行身份验证和查询标记。 这是我的模型:

class Tag(models.Model):
"""Tag to be used for a objective"""
name = models.CharField(max_length=255)
user = models.ForeignKey(
    settings.AUTH_USER_MODEL,
    related_name='tag',
    on_delete=models.CASCADE,
)
以下是我的模式代码:

class TagNode(DjangoObjectType):
class Meta:
    model = Tag
    filter_fields = ['name']
    interfaces = (relay.Node,)
我的问题是:

class Query(graphene.ObjectType):
    tag = relay.Node.Field(TagNode)
    all_tags = DjangoFilterConnectionField(TagNode)

    def resolve_all_tags(self, info):

        # context will reference to the Django request
        print(info.context.user)
        if not info.context.user.is_authenticated:
            return Tag.objects.none()
        else:
            return Tag.objects.filter(user=info.context.user)
这是Django JWT的文档:但我不知道如何获取用户(已经使用info.context.user),但它不起作用,
当我试图在头中添加授权(JWT令牌)或将其作为参数时。它也不起作用。

基本上你做的每件事都是正确的,你的用户应该被成功抓取。 我刚刚检查过,它在我的情况下起作用,我像饼干一样使用JWT,但这并不重要

尝试获取标签时,您是否已授权您的用户?
因为关于JWT,您需要授权您的用户并接收JWT令牌。只有在这之后,当您调用标记查询时,才会在请求中显示真正的用户。否则,用户将是匿名的