如何解决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 举报,一经查实,本站将立刻删除。