我目前正在研究如何在当前项目中实现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#中是否有示例