GraphQL | Mongoose - 文档的所有权和权限

问题描述

我最近一直在尝试开发 GraphQL 和 Mongoose API。 我以为我会从身份验证和权限开始,但在后者方面遇到了一些问题。

我有一个 mongoose 集合(用户)来存储我的用户。 猫鼬架构看起来像这样:

const { composeMongoose } = require("graphql-compose-mongoose");

const User = new Schema(
  {
    name: { type: String,required: true },email: { type: String,// [...]
  },);

module.exports = {
  User: User,UserSchema: mongoose.model("users",User),UserTC: composeMongoose(mongoose.model("users",User)),};

我有另一个看起来像这样的集合(成分):

const Ingredient = new Schema(
  {
    name: String,ownerId: String,}
);

module.exports = {
  Ingredient: Ingredient,IngredientSchema: mongoose.model("ingredients",Ingredient),IngredientTC: composeMongoose(mongoose.model("ingredients",Ingredient)),};

我一直在尝试使用 graphql-compose 来简化为应用程序的 GraphQL 部分创建模式。除此之外,我还尝试制作中间件来检查 ownerId 字段是否等于存储在我的上下文中的用户。我已经成功获取到用户,但是我无法获取文档并检查文档本身。

const applyResolver = (resolver) => {
  var tmpResolver;
  if (typeof resolver === "object") {
    if (typeof resolver.permission === "function") {
      tmpResolver = resolver.resolver.wrapResolve((next) => (rp) => {
        resolver.permission(rp); //This function is meant to throw if an error happens.

        return next(rp);
      });
    } else {
      tmpResolver = resolver.resolver;
    }
  } else {
    tmpResolver = resolver;
  }
  return tmpResolver;
};

我的问题是我无法将文档传递给权限函数,从而检查参数是否匹配。

有没有办法用 graphql-compose 做到这一点,还是我必须开始寻找另一种方法来做到这一点?

如果缺少任何信息,请告诉我。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...