【问题标题】:Authentication/Authorization for default resolvers默认解析器的身份验证/授权
【发布时间】:2019-03-02 13:21:41
【问题描述】:

我阅读了关于如何使用 @login_required 和其他带有解析器的装饰器的描述。但是,如果不使用显式解析器(而是使用默认解析器),如何执行类似的访问控制?

就我而言,我将石墨烯与 Django 用户模型一起使用。我有以下内容:

class UserNode(DjangoObjectType):
    class Meta:
        model = User
        filter_fields = ['first_name', 'last_name', 'id', 'email']
        interfaces = (Node, )

class Query(object):
    userNode = relay.Node.Field(UserNode)
    all_users = DjangoConnectionField(UserNode)

如果我明确定义一个 'resolve_all_users' 方法并在其上使用 @login_required 装饰器,它就可以正常工作。但是我的架构中的这个(和其他对象)依赖于默认解析器。如何在无需明确定义解析器的情况下保护它们?

我承认自己是使用石墨烯/graphql 的新手......非常感谢任何帮助我指明正确方向的人。

来源:https://github.com/flavors/django-graphql-jwt/issues/36

【问题讨论】:

    标签: django graphql graphene-python


    【解决方案1】:

    没有明确定义resolve_方法的简单方法。

    但你仍然可以继承Field 类并添加额外的构造函数参数来支持此功能或使用resolve_ :)

    【讨论】:

    • 最好的方法是在get_queryset 方法中。但这只有在您使用 DjangoObjectType 时才有效
    猜你喜欢
    • 1970-01-01
    • 2023-01-11
    • 2011-09-27
    • 2017-05-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-01
    相关资源
    最近更新 更多