默认解析器的身份验证/授权
Posted
技术标签:
【中文标题】默认解析器的身份验证/授权【英文标题】: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
【问题讨论】:
【参考方案1】:没有明确定义resolve_
方法的简单方法。
但你仍然可以继承Field
类并添加额外的构造函数参数来支持此功能或使用resolve_
:)
【讨论】:
最好的方法是在get_queryset
方法中。但这只有在您使用 DjangoObjectType
时才有效以上是关于默认解析器的身份验证/授权的主要内容,如果未能解决你的问题,请参考以下文章
HTTP 请求未经客户端身份验证方案“匿名”授权。从服务器收到的身份验证标头是“默认”。
未指定 authenticationScheme,并且没有找到具有默认身份验证和自定义授权的 DefaultChallengeScheme
AWS Bitnami Parse Server - 添加 HTTP 身份验证使我在解析仪表板中的应用程序“未经授权”