使用GraphQL时如何与数据库验证某些字段?

时间:2018-11-26 12:20:58

标签: javascript c# asp.net-core graphql graphql-js

我目前正在研究如何在当前项目中实现GraphQL。有件事让我担心...如何与数据库一起验证正在传递的信息实际上是来自该用户的?查询和变异都从单个端点获取,然后由客户端负责分别对数据库执行读取和写入操作。

虽然我看到了如何通过类型(字符串,id,数字等)进行验证,但是我没有看到钩子或当下我可以验证所传递的可能的ID实际上来自于当前用户。例如:

query {
  hero {
    name
  }
  droid(id: "2000") {
    name
  }
}

如何与数据库核对当前ID 2000是否属于当前用户?

我目前正在使用.NET Core MVC 2(如果有帮助)。

我会使用Entity Framework完成以下操作: _database.Droids.Where(x => x.UserId == userId && x.id == id).FirstOrDefaultAsync();

如果该ID与该用户不对应,它将返回一个空对象。插入操作(GraphQL中的Muting)也是如此。

是否有一个钩子可以用来验证数据?我该怎么办?

谢谢!

我不介意NodeJS或C#中是否有示例

0 个答案:

没有答案